亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取剛剛創建的模型實例及其所有子關系

獲取剛剛創建的模型實例及其所有子關系

PHP
蠱毒傳說 2023-07-15 17:38:09
所以我有一個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')


查看完整回答
反對 回復 2023-07-15
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號