我是Laravel的新手,我自学了如何从登录表进行身份验证。我已经迁移并创建了表格。现在,我试图将数据播种到登录表中,但是命令提示符不断给出错误,即Fatal Error, class login not found
,我不知道我错过了什么。所以任何人都可以帮助我。这是我的代码,是的,我使用的是Laravel 4.3
<?php
class loginTableSeeder extends Seeder
{
public function run()
{
DB::table('login')->delete();
login::create(array(
'username' => 'sanju',
'password' => Hash::make('sanju')
));
}
}
?>
答案 0 :(得分:15)
修改强>
现在我看到,问题在于你的login
类(早期的问题格式化,确切的错误是难以理解的)。你应该再看一下你有login
类的文件名是什么,以及类的名称是什么。惯例是文件应该具有名称Login.php
(带大写字母),类的名称也应该是Login
(带大写字母)。您还应该检查Login
类的命名空间。如果在App
命名空间中定义,则应添加到LoginTableSeeder
:
use App\Login;
在<?php
所以基本上文件的开头应如下所示:
<?php
use App\Login;
use Illuminate\Database\Seeder;
更早的回答
你没有解释确切的错误是什么(可能错误是Seeder
类)但是:
在database/seeds/DatabaseSeeder.php
中你应该运行这样的登录浏览器:
$this->call('LoginTableSeeder');
您应该在开头用大写字母填入database/seeds
档案LoginTableSeeder.php
。
现在,您的文件LoginTableSeeder.php
文件应如下所示:
<?php
use Illuminate\Database\Seeder;
class LoginTableSeeder extends Seeder
{
public function run()
{
// your code goes here
}
}
你需要在文件开头用Seeder
导入use
,并且类名应该以大写字母开头。
现在您应该运行composer dump-autoload
,现在当您运行php artisan db:seed
时,它将正常运行。
答案 1 :(得分:10)
跑吧
composer dump-autoload -o
由于数据库文件夹不会自动使用PSR-4自动加载,因此自动加载器可以获取新类。
答案 2 :(得分:8)
您需要为该表创建一个Eloquent模型才能使用Login::create()
。你可以用一个简单的工匠命令来做到这一点:
$ php artisan generate:model Login
这将在app/models
目录中生成一个新的Eloquent模型,该模型应如下所示。
class Login extends Eloquent {
protected $fillable = [];
protected $table = 'login';
}
之后您的代码应该可以运行。如果仍然没有确保您运行composer dump-autoload
。
答案 3 :(得分:2)
这对我有用
composer dump-autoload -o
答案 4 :(得分:1)
我遇到了同样的问题,但您可以通过添加命名空间来解决它:
namespace yournamespace;
use App\Login;
use Illuminate\Database\Seeder;
答案 5 :(得分:0)
我遇到了同样的问题。在我的情况下,作曲家非常古老,在更新之后一切都运行正常。
使用以下命令更新composer:
$ composer self-update
希望它可以帮助别人。
答案 6 :(得分:0)
您需要创建模型
$ php artisan generate:model Login
,而不是您的种子类中的。需要将use App\Models\Login;
添加到我的loginTableSeeder文件中。