Laravel 5 数据填充

3

我正在按照文档的指导来填充用户表,文档中使用了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为用户创建make:model,但它已经存在了。有没有人能指点一下我,我刚开始学习Laravel,并通过Laracast和文档来拼凑它,但5.0版本中没有关于种子数据的Laracast。现在似乎不能像以前那样生成种子数据,因为artisan不再识别generate:seed命令。

2个回答

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
你需要在seeder的顶部导入用户模型,可以使用use App\User;,或者直接通过\App\User::create...引用。你需要通过其命名空间引用User模型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接