如何直接从数据透视表中获取数据(使用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做到这一点。
答案 0 :(得分:1)
您可以尝试以下方法:
获取特定订单(在本例中为1):
$order = \App\Model\Orders::find(1);
获取上述订单的相关订单:
$relatedOrders = $order->related_orders->first();
获取ID(假设您的列为id)
return $relatedOrders->id;
答案 1 :(得分:1)
如果我理解正确的话,您想要做的事情似乎很简单。如果您想要相关订单的ID数组,请执行以下操作:
$relatedOrders = $order->related_orders->pluck('id');
让我知道这是否是您的意思,如果给出正确的结果,也许还有您想要做的事情我不理解。