Laravel 5.7直接从数据库填充数据以选择输入

时间:2018-12-07 07:34:12

标签: laravel-5 eloquent 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上不起作用

有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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();

结果必须为数组

答案 1 :(得分:1)

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

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