2015-09-18 58 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或查询生成器更雄辩的语言,但我无法弄清楚如何。

无论如何对下一个问题!