如何在laravel

时间:2017-01-25 19:17:18

标签: laravel laravel-5.3 laravel-blade

如何在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']) }}

1 个答案:

答案 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() ?? [];