当我运行php artisan db:seed时,我得到以下错误:
(注意-我用的是laravel最新版本7)
照明\Contracts\Container\BindingResolutionException
目标类[UsersTableSeeder]不存在。
默认的laravel安装没有UserStableSeeder
。您需要通过运行
php artisan make:seeder UsersTableSeeder
Laravel默认情况下没有UserTableSeeder。 您可以通过运行以下artisan命令创建一个:
php artisan make:seeder UsersTableSeeder
运行该命令后,您可以在数据库目录中找到种子程序。 在播种机的运行函数中,您可以创建所需的用户。
下面的示例适用于我的RoleSeeder,但它可能会为合适的解决方案提供一些指导:
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$customer = Role::updateOrCreate(['name' => 'customer']);
$customerPermissions = [
'view users',
'create users',
'edit users',
'delete users',
'view machines',
'view profile',
'edit profile',
'view documents',
];
$customer->givePermissionTo($customerPermissions);
}
我建议使用updateOrCreate函数,只是因为在测试中,您可能希望多次运行种子程序。 此函数将检查记录是否已经存在,并相应地更新记录