Как добавить модель в другую модель в laravel? ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Как добавить модель в другую модель в laravel?

Сообщение Anonymous »

У меня не так уж много опыта в Laravel. Я создаю панель управления заказами и как бы застрял здесь. Я хочу использовать здесь лучшие практики для достижения результатов. У меня есть 5 таблиц (схемы упрощены):

Код: Выделить всё

1. User (id, username, email)
2. Orders (id, user_id, order_type)
3. vector_order(id, order_id)
4. digitizing_order(id, order_id)
5. graphics_order(id, order_id)
где в таблицах 3, 4 и 5 внешний ключ (order_id) ссылается на Order (id) . Заказы имеют связь один к одному с векторными, графическими и оцифрованными таблицами.
Чтобы получить подробную информацию о заказе, мне сначала нужно запросить таблицу заказы, а затем на основе значения order_type (числового значения 0, 1, 2) мне нужно получить дополнительную информацию об этом заказе из таблиц, определенных в пункте 3, 4, 5.
Чтобы получить информацию о пользователе заказа, я использую метод OrderModel::with('user'), который работает нормально, если я получаю только Order + информацию о пользователе, но я не могу получить данные из таблиц vector_order, digitizing_order иgraphic_order таким образом.
Сейчас я делаю это так путь:

Код: Выделить всё

public function getOrderDetails($orderId){
$orderInfo = OrderModel::with('user')->find($orderId);
$detail = [$orderInfo];

switch($orderInfo->order_type){
case 0:
array_push($detail, VectorModel::find($job->id));
case 1:
array_push($detail, DigitizingModel::find($job->id));
case 2:
array_push($detail, GraphicModel::find($job->id));
default:
break;
}

return $detail;

Похоже, это неправильный путь. Пожалуйста, помогите мне написать это лучше.

Подробнее здесь: https://stackoverflow.com/questions/779 ... in-laravel

Вернуться в «Php»