【问题标题】:Laravel. Get data from pivot table拉拉维尔。从数据透视表中获取数据
【发布时间】:2019-02-21 20:48:50
【问题描述】:

如何直接从数据透视表中获取数据(使用 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 做到这一点。

【问题讨论】:

    标签: php laravel pivot


    【解决方案1】:

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

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

    让我知道这是否是您的意思,如果这给出了正确的结果,也许您还想做一些我不明白的事情。

    【讨论】:

      【解决方案2】:

      你可以试试这个:

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

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

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

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

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

      return $relatedOrders->id;
      

      【讨论】:

        猜你喜欢
        • 2018-07-27
        • 1970-01-01
        • 2018-10-01
        • 2021-06-14
        • 2021-12-22
        • 1970-01-01
        • 2020-11-30
        • 2020-02-23
        • 2020-09-02
        相关资源
        最近更新 更多