Laravel播种机出错.找不到课程

sam*_*lsk 12 php sql laravel laravel-5 artisan

我是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')
            ));
    }
}


?> 
Run Code Online (Sandbox Code Playgroud)

Mar*_*łek 15

编辑

现在我明白了,问题在于你的login课程(早期的问题格式化确切的错误是难以理解的).您应该再次查看您拥有login类的文件名称以及类的名称.惯例是文件应该有名称Login.php(带大写字母),类的名称也应该是Login(带大写字母).您还应该检查您的Login类的命名空间.如果在App命名空间中定义,则应添加到LoginTableSeeder:

use App\Login;
Run Code Online (Sandbox Code Playgroud)

在下一行之后 <?php

所以基本上你的文件的开头应该是这样的:

<?php

    use App\Login;
    use Illuminate\Database\Seeder;
Run Code Online (Sandbox Code Playgroud)

更早的回答

您没有解释确切的错误是什么(可能错误是针对Seeder类)但是:

database/seeds/DatabaseSeeder.php你应该运行这样的登录播种机:

$this->call('LoginTableSeeder');
Run Code Online (Sandbox Code Playgroud)

你应该在开头用大写字母database/seeds存档LoginTableSeeder.php.

现在,您的文件LoginTableSeeder.php文件应如下所示:

<?php

use Illuminate\Database\Seeder;

class LoginTableSeeder extends Seeder
{
    public function run()
    {

        // your code goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

你需要在文件的开头导入Seeder,use并且类名应该以大写字母开头.

现在你应该运行composer dump-autoload,现在当你运行php artisan db:seed它将工作正常.


Dan*_*liz 10

只需运行 composer dump-autoload -o 自动加载器来获取新类,因为数据库文件夹不会自动使用PSR-4自动加载.


Bog*_*dan 8

您需要为该表创建一个Eloquent模型才能使用Login::create().你可以用一个简单的工匠命令来做到这一点:

$ php artisan generate:model Login

这将在app/models目录中生成一个新的Eloquent模型,它应该如下所示.

class Login extends Eloquent {

    protected $fillable = [];
    protected $table = 'login';

}
Run Code Online (Sandbox Code Playgroud)

你的代码应该在那之后工作.如果它仍然不能确保你运行composer dump-autoload.