Laravel. Получить данные из сводной таблицы - PullRequest
0 голосов
/ 18 сентября 2018

Как я могу получить данные из сводной таблицы напрямую (с помощью Laravel)?

У меня есть модель \ App \ Model \ Orders

class Orders extends Model
{
     public function related_orders()
     {
         return $this->belongsToMany(\App\Model\Orders::class,'related_orders','order_id','related_id');
     }
}  

OK, я могу получить данные из сводной таблицыкак

$order = \App\Model\Orders::find(1);

foreach ($order->related_orders as $related_order) {
    $related_order->pivot->related_id;
}

Но мне нужен только связанный идентификатор заказа!Я не хочу получать все связанные заказы для получения одного поля идентификатора.Это нерационально.

Можете ли вы помочь мне?

PS: я знаю, как это сделать с SQL-запросом, это не проблема.Интересно, как это сделать с Laravel.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

То, что вы хотите сделать, кажется довольно простым, если я правильно понимаю.Если вы хотите получить массив идентификаторов для связанных заказов, просто сделайте это:

$relatedOrders = $order->related_orders->pluck('id');

Дайте мне знать, если вы это имели в виду, и если это дает правильный результат, возможно, вы ищете что-то ещесделай то, чего я не понял.

0 голосов
/ 18 сентября 2018

Вы можете попробовать это:

Получить конкретный заказ (в данном случае 1):

$order = \App\Model\Orders::find(1);

Получить соответствующий заказ для вышеуказанного заказа:

$relatedOrders = $order->related_orders->first();

Получить идентификатор (при условии, что ваш столбец является идентификатором)

return $relatedOrders->id;
...