Laravel модель отношения между тремя таблицами
Помогите пожалуйста правильно сделать запрос с учетом отношений между таблицами. Есть 4 таблицы:
Customers
id
company
Dishes
id
dish_name
Orders
customer_id
amount
Orders_Dishes
order_id
dish_id
Между таблицами установленны связи hasMany и belongsTo.
Сделал запрос, который выводит мне нужную информация:
$foods = Order::join('orders_dishes', 'orders.id', '=', 'orders_dishes.order_id') ->join('dishes', 'orders_dishes.dish_id', '=', 'dishes.id') ->join('customers', 'customers.id', '=', 'orders.customer_id' ) ->select('dishes.id', 'dishes.dish_name', 'orders_dishes.amount', 'customers.company') ->where('orders.id', '=', $order->id) ->get();
Вывод:
{ "id": 5, "dish_name": "утка по-пекински", "amount": 1, "company": "ООО Компания ЭлектроВостокКазань" }
В результате я получаю id заказа, название блюда, количество заказанных блюд, данные клиента, сделавшего заказ. Как мне рефакторить код и сделать запрос, с учетом отношений между таблицами. Мне нужно использовать директиву through или как, не могу понять, помогите.
Ответы (1 шт):
Если все нужные отношения уже подключены то это должно выглядеть как то так
$foods = Order::with(['orders_dishes.dishes','customers'])-get();