所以我有一個Order、Product、ProductOption和OrderProductOption模型。產(chǎn)品.php: public function product_options() { return $this->hasMany(ProductOption::class); }一個產(chǎn)品可以有多種選擇,例如。Product“襯衫 1”可以有ProductOption“XS”、“S”、“M”等。產(chǎn)品選項.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'); }現(xiàn)在,每當(dāng)Order創(chuàng)建 an 時,我都會得到Order它的ProductOption關(guān)系。但是,我還想檢索Product與 相關(guān)的ProductOption。我想我可以說我想要得到一個子關(guān)系。我怎樣才能獲得剛剛創(chuàng)建的Order所有關(guān)系,包括子關(guān)系?通常情況下,我可以這樣做: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貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊
您的問題是您嘗試在已加載的模型上使用 with() 。您擁有所需的模型,只需加載關(guān)系即可。這稱為延遲預(yù)加載。
????$order->load('product_options.product')
- 1 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消