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')));

链接地址: http://www.djcxy.com/p/64809.html

上一篇: FuelPHP ORM bulk update related objects

下一篇: Fuelphp orm if id not exsitst