在播种数据时,数组到字符串转换laravel 5.5

问题描述 投票:1回答:3

数组到字符串转换

(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中,我相信有一个错误

php laravel laravel-5 eloquent laravel-5.5
3个回答
0
投票

您正在尝试在group_id列中保存数组。你只需要保存id而不是数组

试试这个

DB::table('group_members')->insert([
        'id' => $user->id,
        'group_id' => array_random($groups)['id'],
        'alias' => $user->display_name
  ]);

0
投票

如果您想获得该组中的任何一个,那么您可以尝试

array_random($groups, 1),

如果你想存储多个,那么你可能想将它转换为json

 json_encode(array_random($groups, 1)),

0
投票

使用laravel辅助方法Arr::random

Arr::random方法从数组中返回一个随机值

use Illuminate\Support\Arr;

$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);

// 2 - (随机检索)

© www.soinside.com 2019 - 2024. All rights reserved.