数组到字符串的转换
(SQL)
`insert into `group_members` (`id`, `group_id`, `alias`) values (1, 20, Lilian Marvin PhD)`
$users = User::where('role_id','=',3)->select('id','display_name')->get();
foreach ($users as $user) {
$groups = Group::select('id')->get()->toArray();
// echo $user->display_name ." " .$user->id ."<br/>";
DB::table('group_members')->insert([
'id' => $user->id,
'group_id' => array_random($groups),
'alias' => $user->display_name
]);
}
在 array_random 中,我相信有错误
答案 0 :(得分:1)
如果您想加入小组中的任何一个,可以尝试
json_encode(array_random($groups, 1)),
如果要存储多个,则可能希望将其转换为json
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"
JENKINS_ARGS="-Dmail.smtp.starttls.enable=true"
答案 1 :(得分:0)
您正在尝试将数组保存在group_id
列中。您只需要保存id
而不保存数组
尝试
DB::table('group_members')->insert([
'id' => $user->id,
'group_id' => array_random($groups)['id'],
'alias' => $user->display_name
]);
答案 2 :(得分:0)
使用的laravel辅助方法Arr::random
Arr::random
方法从数组中返回一个随机值
use Illuminate\Support\Arr;
$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 2-(随机检索)