@lexstile

Как правильно составить связи для корректного ответа на laravel 9?

Есть таблица menu:
6391b172827ba706121551.png
Есть таблица categories:
6391b179b4fe6531230805.png
Есть таблица dishes:
6391b1816e8ad172059826.png

Хочется получить такой ответ:
[
  {
    id: 1,
    name: 'Категория 1',
    dishes: [
      {
        id: 1,
        name: 'Блюдо 1',
      },
      {
        id: 2,
        name: 'Блюдо 2',
      },
    ],
  },
  {
    id: 2,
    name: 'Категория 2',
    dishes: [
      {
        id: 3,
        name: 'Блюдо 3',
      },
      {
        id: 4,
        name: 'Блюдо 4',
      },
    ],
  },
]


Пробовал организовать:
public function viewMenu(Project $project, Menu $menu) {
        dd($menu->categories()->dishes()->toSql()); // не работает цепочка
        dd(Category::find(7)->dishes()->dd()); // не получилось организовать связь в модели Categories
    }

class Category extends Model
{
    public function dishes() 
    {
        return $this->belongsToMany(Dishe::class, 'dishes', 'menu_id', 'menu_id', 'category_id', 'id'); // не могу выстроить поля
    }
}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@Samuel_Leonardo
...
$categoriesWithDishes =  $menu
       ->categories()
       ->with('dishes')
       ->get();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы