Laravel 5.7 заполняет данные прямо из базы данных, чтобы выбрать ввод

Я хочу получить прямые данные в главной таблице в формате array($key => $value):

in controller:

$result = array();
$color_list = Master::whereRaw("type = 'color'")->get();

// format data for select input
foreach ($color_list as $value) {
     $result[$value->id] = $value->name;
}

return view('backend.product.create', compact('result')

с учетом:

{!! Form::select('color', $result) !!}

Цель: Не использовать foreach для построения данных для выбранного ввода

я нахожу код:

$color_list = Master::lists('id', 'name');

но это не работает на Laravel 5.7

Кто-нибудь может помочь?


person Hưng Trịnh    schedule 07.12.2018    source источник
comment
используйте 1_   -  person Davit    schedule 07.12.2018
comment
@Davit: сработало, большое спасибо   -  person Hưng Trịnh    schedule 07.12.2018


Ответы (2)


Вы можете использовать это

$color_list = Master::whereRaw("type = 'color'")->pluck('name', 'id');

результат должен быть

Collection {#499
  #items: array:10 [
    117 => 'master1'
    118 => 'master2'
    119 => 'master3'
    .........
  ]
}

или для использования массива

$color_list = Master::whereRaw("type = 'color'")->pluck('name', 'id')->all();

результат должен быть массивом

person Davit    schedule 07.12.2018

$color_list = Master::whereRaw("type = 'color'")->pluck('name', 'id');

Метод pluck извлекает все значения для данного ключа Doc Laravel.

person Tai Ho    schedule 07.12.2018
comment
результат должен быть [name => id] - person Davit; 07.12.2018
comment
срывать('имя', 'идентификатор') - person Tai Ho; 07.12.2018
comment
Я знаю это. Спасибо - person Davit; 07.12.2018