数组到字符串转换
(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中,我相信有一个错误
您正在尝试在group_id
列中保存数组。你只需要保存id
而不是数组
试试这个
DB::table('group_members')->insert([
'id' => $user->id,
'group_id' => array_random($groups)['id'],
'alias' => $user->display_name
]);
如果您想获得该组中的任何一个,那么您可以尝试
array_random($groups, 1),
如果你想存储多个,那么你可能想将它转换为json
json_encode(array_random($groups, 1)),
使用laravel辅助方法Arr::random
Arr::random
方法从数组中返回一个随机值
use Illuminate\Support\Arr;
$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 2 - (随机检索)