MembersController.php
use Cake\Datasource\ConnectionManager;
MembersController.php
// トランザクション
$connection = ConnectionManager::get('default');
$connection->begin();
try{
// データを保存
if( !($member_result = $this->Members->save($member)) ){ // member更新
throw new Exception(Configure::read("M.ERROR.INVALID"));
}
// 今登録したmember_idを設定 TODO 本当はentityでidも篩いにかけた方がいいかも
$agreement['member_id'] = $member_result['id'];
if(!$this->Agreements->save($agreement)){ //agreementの更新
throw new Exception(Configure::read("M.ERROR.INVALID"));
}
$this->Members->connection()->commit();
} catch(Exception $e){
$this->Flash->error($e);
$connection->rollback(); //ロールバック
}