Laravel 使用 optgroup 的表单下拉列表

Laravel Form dropdown with 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();

加载类别:

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

然后准备$descriptions数组:

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