Допустим, у меня есть коллекция с категориями, и я хочу загрузить все описания по категориям. Так что это означает, что каждая категория 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();
Загрузить категории:
$categories = Category::with('descriptions')->orderBy('name', 'asc')->get();
Затем подготовьте $descriptions
массив:
foreach ($categories as $category) {
$descriptions[$category->name] = $category->descriptions->pluck('name', 'id');
}
Других решений пока нет …