如何在laravel 5.3中的刀片中使用带有数组的optgroup?
我在项目中使用select2。
例如:
<select class="form-control select2">
<optgroup label="Top Airport">
<option value="MHD">Mashhad</option>
<option value="THR">Tehran</option>
</optgroup>
<optgroup label="All Airport">
<option value="MHD">Mashhad</option>
<option value="THR">Tehran</option>
<option value="LON">London</option>
.
.
.
</optgroup>
</select>
在Controller
:
public function index()
{
$airport = Airport::where('status', 1)->pluck('city', 'iata');
return view($this -> path_site_theme() . '.home.index', ['airport' => $airport]);
}
在index.blade.php
:
{{ Form::select('from', ['Top Airport' => ['MHD', 'Mashhad', 'THR' => 'Tehran'], 'All Airport' => $airport], null, ['class' => 'form-control select2']) }}
答案 0 :(得分:2)
当pluck
期望数组时,Collection
方法返回Form::select()
的实例。您可以使用toArray()
方法链接以使其正常工作。
$airport = Airport::where('status', 1)->pluck('city', 'iata')->toArray();
或者更好的是,如果您使用PHP7,请使用合并运算符。即使数据库中没有活动的机场,当它试图将null转换为数组时toArray()
也会发生很多事情,它永远不会失败。
$airport = Airport::where('status', 1)->pluck('city', 'iata')->toArray() ?? [];