Laravel 5 播种

Laravel 5 Seeding

我正在关注 docs 以播种用户 table,这表明 User::create 正在使用

class UserTableSeeder extends Seeder {

    public function run()
    {
      DB::table('users')->delete();

      User::create([
        'username' => 'test',
        'firstname' => 'Test',
        'lastname' => 'Test',
        'email' => 'test@domain.com',
        'password' => Hash::make('test'),
        'role' => 'user'
      ]);
    }

}

但它一直在说:

PHP Fatal error:  Class 'User' not found in /home/vagrant/projects/roopla/database/seeds/UserTableSeeder.php on line 17

我想也许我需要 make:model 为用户使用 artisan,但它已经存在。任何人都可以指出我正确的方向我只是从 Laravel 开始并通过 Laracast 和文档将它拼凑在一起,但是 5.0 的种子没有 Laracast。看来你现在不能生成种子了,因为 artisan 不认识 generate:seed

您需要使用 use App\User; 在播种器顶部导入您的用户模型,或者仅通过 \App\User::create... 引用它。您需要通过它的命名空间引用 User 模型。

那是因为在 Laravel 5 中,User 模型在 App 命名空间中,而您的播种器在全局命名空间中。

你应该使用:

 \App\User::create([
        'username' => 'test',
        'firstname' => 'Test',
        'lastname' => 'Test',
        'email' => 'test@domain.com',
        'password' => Hash::make('test'),
        'role' => 'user'
      ]);

或者在种子文件的开头:

use App\User;

现在您可以使用您显示的代码了