【CakePHP】saveallで新規登録と更新処理を同時に行う
バージョン:CakePHP 2.x
saveallはid列のデータがあるかどうかで、新規登録か更新処理が決まります。
したがって、下記のようなArrayを作ると、
新規登録と更新処理を同時に行うことができます。
「Users」というテーブルに ID=1 のデータがある前提で、
新規登録と更新処理を行う場合は下記のようなArrayリストを作ります。
Array ( [0] => Array ( [User] => Array ( [id] => 1 [name] => test ) ) [1] => Array ( [User] => Array ( [name] => test1 ) ) )
簡単なコントローラーの例は下記になります。
<?php class UsersController extends AppController { function beforeFilter(){ parent::beforeFilter(); } public function index() { $data = array(); $user1 = array(); $user1['User']['id']= 1; $user1['User']['name'] = "test1"; array_push($data,$user1); $user2 = array(); $user2['User']['name'] = "test2"; array_push($data,$user2); $this->User->saveall($data); } }