Раскрывающийся список форм Laravel с optgroup

Допустим, у меня есть коллекция с категориями, и я хочу загрузить все описания по категориям. Так что это означает, что каждая категория hasMany описания. Я хочу отобразить все описания в раскрывающемся списке, а optgroup label имя категории, принадлежащей описанию. Так что-то вроде этого:

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

И результаты будут примерно такими (первое попадание в Google):

пример

Я знаю, что мне нужно просто передать многомерный массив, но я не уверен, как этого добиться. Любые указатели будут полезны. Я знаю, что следующее даст мне массив Categories:

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

Но я не могу просто загрузить описания, так как следующее выдаст ту же самую атаку без каких-либо описаний:

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

3

Решение

Загрузить категории:

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

Затем подготовьте $descriptions массив:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]