簡體   English   中英

Laravel插入嵌套的口才ORM模型

[英]Laravel Inserting nested Eloquent ORM model

假設我有三個具有如下關系的表:

  1. 產品

     has many options 
  2. 選項

     can belong to many product has option_values 
  3. 請將option_value

     belongs to many option 

使用Laravel我可以像這樣更新選項

product->options()->insert($stuff);

但是我也想插入到option_value中。

我試過了

product->options()->values()->insert($otherStuff);

但這不起作用。 如何用雄辯的ORM做到這一點?

您無法通過這種方式訪問​​子關系,您必須實際具有模型結果並在其上調用方法,或者使用快速加載但快速加載對插入沒有幫助。

您將不得不循環選擇模型並通過它們插入,但這會導致太多的插入查詢。 更好的方法可能是僅獲取相關的ID,然后在單個流利的查詢中而不是許多Eloquent中運行插入。

$option_ids = $product->options()->lists('id');
DB::table(OptionValue::$table)->insert(array_merge($data, $option_ids));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM