所以我有一个Order、Product、ProductOption和OrderProductOption模型。
产品.php:
public function product_options()
{
return $this->hasMany(ProductOption::class);
}
一个产品可以有多种选择,例如。Product“衬衫 1”可以有ProductOption“XS”、“S”、“M”等。
产品选项.php:
public function product()
{
return $this->belongsTo(Product::class);
}
public function orders()
{
return $this->belongsToMany(Order::class, 'order_product_option', 'option_id', 'order_id')->withPivot('quantity');
}
订单.php:
public function product_options()
{
return $this->belongsToMany(ProductOption::class, 'order_product_option', 'order_id', 'option_id')->withPivot('quantity');
}
现在,每当Order创建 an 时,我都会得到Order它的ProductOption关系。但是,我还想检索Product与 相关的ProductOption。我想我可以说我想要得到一个子关系。
我怎样才能获得刚刚创建的Order所有关系,包括子关系?
通常情况下,我可以这样做:
return new OrderResource(Order::where('id', $order_id)
->with('product_options', 'product_options.product')
->firstOrFail());
但在这种情况下,我想返回一个Order实例,而不是 OrderRequest array.
我试过:
$order->with('product_options.product')
或者:
$order->with('product_options.product')->get()
但这些返回一个Builder实例或一个Collection实例。任何帮助,将不胜感激!
尚方宝剑之说