У меня много красноречивых отношений между Categories->SubCategories->MenuItems
. Мне нужно отобразить имя категории в качестве заголовка optgroup и его подкатегории в качестве значения параметра. Вместо моих ожиданий, он показывает категорию над каждой подкатегорией. Извините за то, что я новичок, пожалуйста, помогите мне.
Вот что я сделал до сих пор.
<select wire:model="sub_category_id" class="form-select block w-full mt-1">
<option>Select Sub Category</option>
@foreach ($menuitemlist as $menuitem)
<optgroup label="{{ $menuitem->SubCategories->Categories->category_name }}">
<option value="{{ $menuitem->SubCategories->id }}">{{ $menuitem->SubCategories->sub_category_name }}</option>
</optgroup>
@endforeach
@error('sub_category_id') <h1 class="text-red-500">{{$message}}</h1>@enderror
</select>
Это результат, который я получаю.
Редактировать
Вот мои отношения.
Категория Модель
public function SubCategories() {
return $this->hasMany(SubCategory::class, 'category_id');
}
public function MenuItems() {
return $this->hasManyThrough(MenuItem::class, SubCategory::class, 'category_id', 'sub_category_id');
}
Подкатегория Модель
public function Categories() {
return $this->belongsTo(Category::class, 'category_id');
}
public function MenuItems() {
return $this->hasMany(MenuItem::class, 'sub_category_id');
}
MenuItem Модель
public function SubCategories() {
return $this->belongsTo(SubCategory::class, 'sub_category_id');
}
$menuitemlist
?? - person zahid hasan emon   schedule 21.10.2020'menuitemlist' => MenuItem::where('item_name','like', $searchParams)->latest()->paginate(5)
. Это запрос выше, если вы это имели в виду. - person ToxifiedHashkey   schedule 21.10.2020category_name
в качестве метки опции, выбранной с<optgroup>
под этим, я хочу отобразитьsub_category_name
подкатегорий, которые подпадают под ту же категорию. Короче говоря, мне нужно категоризировать подкатегории, принадлежащие к той же категории, и сгруппировать их подcategory_name
, не повторяя его. - person ToxifiedHashkey   schedule 21.10.2020