3

我正在按照文档播种 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

我想也许我需要为用户使用工匠制作:模型,但它已经存在。谁能指出我正确的方向我只是从 Laravel 开始并通过 Laracast 和文档将它拼凑在一起,但是没有 Laracast 播种 5.0。您现在似乎无法生成种子,因为工匠无法识别 generate:seed

4

2 回答 2

7

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

你应该使用:

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

或在播种文件的开头:

use App\User;

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

于 2015-02-12T22:06:05.797 回答
1

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

于 2015-02-12T22:05:57.030 回答