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

时间:2014-10-13 17:17:30

标签: 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')
            ));
    }
}


?> 

7 个答案:

答案 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文件中。