CakePHPでループ中にsaveメソッドを実行したい

Category :

forやforeach中にデータベース保存を実行する際、必ずcreateメソッドを実行する必要があります。

もし実行しなかった場合は、初めの保存だけidが割り振られ、その他のデータにはidがない状態となります。

CakePHP2公式ドキュメントにもループ中で save を呼び出すときは、 create() を忘れないようにしてください。と記載されています。

実際にコードはこんな感じになります。

foreach($Dishes as $data){
$this->Recipe->create();
$this->Recipe->save($data);
}

create(false)とすると、新規登録であることを明示してデータ保存ができます。

参考

https://book.cakephp.org/2.0/ja/models/saving-your-data.html http://www.kaasan.info/archives/2543

TOP
© 2021 uichi