在Seed(laravel 8)中将角色分配给用户(无包)
我试图在Seeder中生成用户,但不知道如何为他们分配角色在Seed(laravel 8)中将角色分配给用户(无包),laravel,laravel-8,Laravel,Laravel 8,我试图在Seeder中生成用户,但不知道如何为他们分配角色 public function run() { for ($i=0; $i < 3; $i++) { $userData[] = [ 'name' => Str::random(10), 'email' => Str::random(10).'@gmail.com', 'password' => Hash::make(
public function run()
{
for ($i=0; $i < 3; $i++) {
$userData[] = [
'name' => Str::random(10),
'email' => Str::random(10).'@gmail.com',
'password' => Hash::make('password')
];
}
foreach ($userData as $user) {
User::create($user);
}
}
公共函数运行()
{
对于($i=0;$i<3;$i++){
$userData[]=[
'name'=>Str::random(10),
“email'=>Str::random(10)。@gmail.com”,
'password'=>Hash::make('password')
];
}
foreach($userData作为$user){
用户::创建($User);
}
}
假设所有,也就是说,我想您想要创建具有随机角色的随机用户。我认为您使用这样的角色结构-,因此您的代码如下:
public function run()
{
$roles = [1,2,3]; //here you need to add id roles from the DB
for ($i = 0; $i < 3; $i++) {
$user = User::create([
'name' => Str::random(10),
'email' => Str::random(10).'@gmail.com',
'password' => Hash::make('password')
]);
// first variant
$user->roles()->attach($roles[array_rand($roles)]) // attach random role to user, the can be duplicated
//second variant
$user->roles()->attach($roles[$i % count($a);]) // attach random role to user, the will be duplicated, if you have more users than roles
}
}
公共函数运行()
{
$roles=[1,2,3];//这里需要从数据库添加id角色
对于($i=0;$i<3;$i++){
$user=user::创建([
'name'=>Str::random(10),
“email'=>Str::random(10)。@gmail.com”,
'password'=>Hash::make('password')
]);
//第一变体
$user->roles()->attach($roles[array_rand($roles)])//将随机角色附加到用户,可以复制
//第二种变体
$user->roles()->attach($roles[$i%count($a);])//将随机角色附加到用户,如果用户多于角色,则将复制
}
}
您有哪些角色?“管理员”、“作者”、“阅读”,您想将随机角色分配给用户吗?是的,先生。将角色附加到seederhi中的用户,感谢您的努力。我不擅长调试。当我设置种子:“无法添加或更新子行:外键约束失败”时,它不起作用。请将存储/logs/laravel.log中的错误日志附加到主题中