FuelPHP ORM批量更新相关对象
我正在尝试批量更新发票上的相关项目表。
$_POST Existing relations intended result
=====================================================
item_id: 3 unlink 3
item_id: 4 item_id: 4 update 4
item_id: 5 item_id: 5 update 5
item_id: null create x
item_id: null create x
我正在推送具有Model
期望的所有$_properties
的json数组对象。
我的控制器方法如下所示:
public function update_items($invoice_id)
{
$invoice = Model_Invoice::find($invoice_id);
if ($items = MyInput::json())
{
$invoice->from_array(array('invoice_items' => $items));
}
$invoice->save();
}
这在保存相关对象(invoice_items)时会产生PK碰撞错误。 这是因为在$invoice->invoice_items
is_new() == true
$invoice->invoice_items
中更新的对象都是is_new() == true
。
我应该如何构建这些代码? 我不想为每个传入的相关项目管理添加/编辑/删除状态。
如果是更新,请确保您获取要更新的项目:
$invoice = Model_Invoice::find($invoice_id, array('related' => array('invoice_items')));