繁体   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