[英]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.