我可以使用:
创建一个select元素$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>
显然这需要在departments表和team table之间进行连接,但我不知道如何构建laravel对分组列表所需的嵌套数组,如Laravel Drop Down List Documentation所示。< / p>
提前感谢您的帮助。
答案 0 :(得分: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或查询生成器有一种更有说服力的方法,但我无法弄清楚如何。
无论如何都要解决下一个问题!