首页 文章

Laravel . 从数据透视表中获取数据

提问于
浏览
0

如何直接从数据透视表中获取数据(使用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');
     }
}

哦,我可以从数据透视表中获取数据

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

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

但是,我只需要相关的订单ID!我不想检索获得一个id字段的所有相关订单 . 这是非理性的 .

你能帮助我吗?

PS:我知道如何用sql查询它没问题 . 我想知道如何用Laravel做到这一点 .

2 回答

  • 1

    如果我正确理解你想做的事情似乎很简单 . 如果您想要相关订单的ID数组,请执行以下操作:

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

    让我知道如果这就是你的意思,如果这给出了正确的结果,也许你还有更多我想做的事情,我不明白 .

  • 1

    你可以试试这个:

    获取特定订单(在本例中为1):

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

    获取上述订单的相关订单:

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

    获取ID(假设您的列是id)

    return $relatedOrders->id;
    

相关问题