[英]Laravel Inserting nested Eloquent ORM model
假設我有三個具有如下關系的表:
產品
has many options
選項
can belong to many product has option_values
請將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.