Laravel 5种子

mtp*_*ltz 3 php namespaces laravel laravel-5 laravel-seeding

我正在按照文档来播种users表,该表显示正在使用的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'
      ]);
    }

}
Run Code Online (Sandbox Code Playgroud)

但它一直说:

PHP Fatal error:  Class 'User' not found in /home/vagrant/projects/roopla/database/seeds/UserTableSeeder.php on line 17
Run Code Online (Sandbox Code Playgroud)

我想也许我需要制作:使用artisan for User的模型,但它已经存在.任何人都可以指出我正确的方向我只是开始与Laravel并通过Laracast和文档拼凑在一起,但没有Laracast播种5.0.现在看来你不能生成种子,因为工匠不认识生成:种子

Mar*_*łek 7

这是因为Laravel 5 User模型在App命名空间中,而播种器在全局命名空间中.

你应该使用:

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

或在播种机文件的开头:

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

现在你可以使用你展示的代码了