私は 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
の新しい ID を使用して行を作成するだけです。Order
Listitem
注:上記のように ID を設定しているのは、デバッグの目的と、この質問を簡単に説明するためだけです。最終的なコードでは、現在の保留中の注文が既に存在するかどうかを確認し、存在するかどうかを確認しperson_id
ます。$this->Order->id = $var;
$this->Order->create();
つまり、INSERT したい場合もあれば (この場合は を発行$this->Order->create();
します)、UPDATE したい場合もあります (この場合は を発行し$this->Order->id = $var;
ます)。上記のテスト ケースは UPDATE を生成するはずですが、代わりに INSERT を生成しています。
私がここで間違っていることは何か分かりますか?