使用optgroup的Laravel表格下拉列表

时间:2018-01-10 12:58:00

标签: php arrays laravel select optgroup

让我们说我有一个带有类别的集合,同时渴望加载每个类别的所有描述。所以这意味着,每个类别hasMany描述。我想在下拉列表中显示所有描述,而optgroup label是属于描述的类别名称。所以像这样:

{{ Form::select('description', ['' => 'Select'] + $descriptions) }}

结果将是这样的(第一次google点击):

Example

我知道我需要简单地传递一个多维数组,但我不知道如何实现它。任何指针都会有所帮助。我知道以下内容会给我一组Categories

Category::orderBy('name', 'asc')->pluck('name', 'id')->all();

但是我不能简单地加载描述,因为以下内容将产生相同的attay,没有任何描述:

Category::with('descriptions')->orderBy('name', 'asc')->pluck('name', 'id')->all();

1 个答案:

答案 0 :(得分:2)

加载类别:

$categories = Category::with('descriptions')->orderBy('name', 'asc')->get();

然后准备$descriptions数组:

foreach ($categories as $category) {
    $descriptions[$category->name] = $category->descriptions->pluck('name', 'id');
}