Laravel 5种子

时间:2015-02-12 21:56:38

标签: php laravel namespaces laravel-5 laravel-seeding

我正在跟随docs播种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'
      ]);
    }

}

但它一直在说:

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

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

2 个答案:

答案 0 :(得分:7)

那是因为在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;

现在您可以使用您展示的代码

答案 1 :(得分:1)

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