14

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


?> 
4

7 回答 7

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
    }
}

您需要在文件开头导入Seederwith并且类名应以大写字母开头。use

现在你应该运行composer dump-autoload,现在运行时php artisan db:seed它会正常工作。

于 2014-10-13T17:32:26.373 回答
10

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

于 2016-12-27T08:01:43.083 回答
9

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

$ php artisan generate:model Login

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

class Login extends Eloquent {

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

}

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

于 2014-10-13T17:43:06.283 回答
2

这对我有用

composer dump-autoload -o 
于 2017-06-12T06:24:22.390 回答
1

我有同样的问题,但您可以通过添加命名空间来解决它:

namespace yournamespace; 
use App\Login;
use Illuminate\Database\Seeder;
于 2016-08-21T14:49:06.253 回答
0

我遇到过同样的问题。就我而言,作曲家非常老,更新后一切正常。

使用以下命令更新作曲家:

$ 作曲家自我更新

希望它可以帮助别人。

于 2016-06-03T16:28:36.273 回答
0

您需要创建模型

$ php artisan generate:model Login

而不是在您的播种机类中需要添加use App\Models\Login;到我的 loginTableSeeder 文件中。

于 2020-09-19T06:06:01.307 回答