我在 CakePHP 2 中有以下代码:
$this->Order->id = 5;
$this->Order->saveAll(array(
'Order' => array(
'person_id' => $this->Session->read('Person.id'),
'amount' => $total,
'currency_id' => $code
),
'Lineitem' => $lineitems /* a correctly-formatted array */
));
我希望这会更新Order
表中主键为 5 的行,然后插入Lineitem
order_id 为 5 的行。
但是,它所做的只是在其中创建一个新行,Order
然后使用新Order
记录中的新 id 来创建Listitem
行。
注意:我只是为了调试目的和轻松演示这个问题而设置上面的 ID。在我的最终代码中,我将检查当前是否已经存在挂单,person_id
如果$this->Order->id = $var;
有,$this->Order->create();
是否没有。
换句话说,有时我会希望它插入(在这种情况下我会发出$this->Order->create();
),有时我会希望它更新(在这种情况下我会发出$this->Order->id = $var;
)。上面的测试用例应该产生一个 UPDATE 但它却产生了一个 INSERT。
知道我在这里做错了什么吗?