HasMany关系,从关系中的孩子找到孩子索引?

时间:2018-01-23 16:04:41

标签: php laravel model eloquent relationship

我目前正在尝试访问Laravel项目中HasMany关系中的子项索引。我有一个包含许多orderItems的订单,但我似乎找不到一种方法来访问我正在处理的orderItem的索引,它与父订单的关系。

所以,基本上我希望能够做到$ orderItem-> order-> index(),如果可能的话,Eloquent中有什么可以给我这个吗?

以下是一些代码,向您展示我如何设置关系......

Order.php

/**
 * @return HasMany
 */
public function orderItems()
{
    return $this->hasMany(OrderItem::class)->orderBy('id', 'DESC');
}

OrderItem.php

/**
 * @return BelongsTo
 */
public function order()
{
    return $this->belongsTo(Order::class);
}

我想做什么......

OrderItem::find(1)->order->index()

或类似的东西。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果我找到你,你正试图获得与OrderItem相关的所有ids Order。然后你可以使用pluck()来获得这个 -

$order = Order::find($orderId);
$ids = $order->orderItems()->pluck('id');

答案 1 :(得分:0)

我向所有与这个问题混淆的人道歉,我想要的是获取我正在处理的当前OrderItem的索引,好像它是通过关系调用加载的。

最后,这是适合我的代码......

$this->$order->orderItems->pluck('id')->search($this->id)

然后返回正确的索引给我。