播种数据时进行数组到字符串的转换laravel 5.5

时间:2019-03-11 07:34:23

标签: php laravel laravel-5 eloquent laravel-5.5

数组到字符串的转换

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

3 个答案:

答案 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-(随机检索)