Laravel 5.7 将数据直接从数据库填充到 select 输入

Laravel 5.7 fill data direct from database to select input

我想在 master table 中获取格式为 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

有人可以帮忙吗?

你可以用这个

$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();

结果必须是数组

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

pluck 方法检索给定键的所有值 Doc Laravel