2011年4月28日木曜日

【CakePHPでsave()をループ処理で使うと最後の一つしかDBに格納されない問題】

タイトル通りの問題が起こったとき

【対処方法】

結論から言うと、save()処理の前に


$this->ModelName->create();


でおk.

これをしないと、2件目以降がinsertじゃなくてupdateになってしまう。
idに対してupdateしているようなので、最後の一件だけが残った。
上記のModel->create();で、モデルが初期化され、2件目以降もinsertになる。
これループ処理に限らず、同一アクション内で2回以上行うと起こると思われる。

参考にしたURLは下記
http://unimakura.jp/php/cakephp-3.html

0 件のコメント:

コメントを投稿