2017-01-25 71 views
1

如何在laravel 5.3的刀片中使用optgroup與陣列?我在項目中使用select2如何在laravel的刀片中使用optgroup與陣列

例如:

<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

什麼問題? Form :: select()沒有給你預期的輸出嗎? –

回答

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