假设我有三个表格,其关系如下:
产品
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);
但那不起作用。如何用Eloquent ORM来完成?
答案 0 :(得分:1)
你不能以这种方式访问子关系,你必须实际拥有模型结果并在其上调用方法,或者使用预先加载,但是急切加载对插入没有帮助。
您必须循环选项模型并插入它们,但这会导致插入查询过多。更好的方法是抓住相关的id并在一个流畅的查询中运行插入而不是很多Eloquent。
$option_ids = $product->options()->lists('id');
DB::table(OptionValue::$table)->insert(array_merge($data, $option_ids));