2015-09-18 55 views
3

我可以用來創建一個選擇元素數據庫中的分組列表下拉:Laravel 4.2創建從

$team = DB::table('team')->orderBy('name', 'asc')->lists('name', 'id'); 
return View::make('team')->with('team', $team); 

,然後在我的形式,我有:

{{Form::select('team', $team) }} 

這將產生輸出如下像:

<select id='team'> 
    <option value="1">Jane Doe</option> 
    <option value="2">Dan Kennedy</option> 
    <option value="3">Zack Glickman</option> 
</select> 

這是美好的。

不過,我想通過部門和團隊成員下組織的下降,這樣我會得到下面的輸出:

<select id='team'> 
    <optgroup label="Marketing"> 
     <option value="1">Jane Doe</option> 
     <option value="3">Zack Glickman</option> 
    </optgroup> 
    <optgroup label="Sales"> 
     <option value="2">Dan Kennedy</option> 
    </optgroup> 
</select> 

顯然,這需要各部門表和團隊表,但之間的連接我不知道如何讓查詢構建laravel對分組列表所需的嵌套數組,如Laravel Drop Down List Documentation所示。

在此先感謝您的幫助。

+0

你需要子陣列。您的團隊變量包含像營銷和銷售的元素。並且每個元素都包含具有名稱和ID的人員。 – mimo

回答

0

所以這就是我最終做的。

$departments = DB::table('departments')->get(); 
$data = array(); 

foreach($departments as $department) { 
    $team = DB::table('team')->where('department_id', '=', $department->id)->orderBy('order', 'asc')->get(); 
    $tdata = array(); 

    foreach($team as $t) { 
     $tdata[$t->id] = $t->name; 
    } 

    $data[$department->department] = $tdata; 

} 

return View::make('team')->with('team', $data); 

這工作,但我希望有做到這一點使用Laravel的ORM或查詢生成器更雄辯的語言,但我無法弄清楚如何。

無論如何對下一個問題!