所以我有一個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實例。任何幫助,將不勝感激!
1 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
您的問題是您嘗試在已加載的模型上使用 with() 。您擁有所需的模型,只需加載關系即可。這稱為延遲預加載。
????$order->load('product_options.product')
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消