Преобразование массива в строку laravel 5.5 при заполнении данных - PullRequest
0 голосов
/ 11 марта 2019

Преобразование массива в строку

(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 голосов
/ 11 марта 2019

Если вы хотите получить любую из группы, то вы можете попробовать

array_random($groups, 1),

Если вы хотите сохранить несколько, вы можете преобразовать их в json

 json_encode(array_random($groups, 1)),
0 голосов
/ 11 марта 2019

использовался вспомогательный метод laravel Arr::random

Метод Arr::random возвращает случайное значение из массива

use Illuminate\Support\Arr;

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

// 2 - (получено случайным образом)

0 голосов
/ 11 марта 2019

Вы пытаетесь сохранить массив в столбце group_id.Вам нужно сохранить только id не массив

попробуйте это

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