Я делаю меню ресторана, где у каждого ресторана есть свои пункты меню, и эти пункты меню принадлежат к какой-либо категории (например, завтрак, обед ...)
Моя цель - посещать тот или иной ресторан.должны отображать категории, связанные с пунктами меню, в которых меню сгруппированы следующим образом.
- Завтрак
- Чай и пирожные - 10
- Кофе ихлеб - 15
- Обед
- Рис с курицей - 45
- Курица и чипсы - 30
Мои отношения таковы ...
1 В ресторане много меню |каждая Menu_Category имеет много меню
в моих моделях У меня есть
модель ресторана
public function menus()
{
return $this->hasMany('App\Menu');
}
Модель меню
public function restaurant()
{
return $this->belongsTo('App\Restaurant');
}
public function category_type()
{
return $this->belongsTo('App\Category', 'category_id');
}
Модель категории
public function menus_type()
{
return $this->hasMany('App\Menu','category_id');
}
Поэтому, когда я посещаю определенный ресторан, он должен отображать только категории, связанные с ресторанамипункты меню.
Ресторанный контроллер
public function show($slug, RestaurantRepository $repository)
{
if(! $restaurant = $repository->get(['slug' => $slug], with(['cuisines','user', 'photos', 'thumbs', 'region', 'ratings.user']))) return abort('404');
$p = 1;
$categories = Category::with('menus_type')->get(); /* This is where I'm lost */
return view('frontend.restaurant.show', compact('restaurant', 'p','categories'));
}
frontend.restaurant.show
@if($categories)
<ul>
@foreach($categories ?? [] as $cat_key=>$category)
@if($category->id ===$restaurant->menus->id)
<li>
{{$category->name}}
<ul>
@foreach($category->menus_type as $menu_key=>$menu)
<li>{{$menu->name}}</li>
@endforeach
</ul>
</li>
@endif
@endforeach
</ul>
@endif
Не работает!