cakephp3 DB トランザクション -- DB transaction --
PHP Ver | 5.6.27 |
CakePHP Ver | 3.1.9 |
cakephp3 DB トランザクション
== 単一テーブルの登録・更新 ==
・begin
$this->{Model}->connection()->begin();
・commit
$this->{Model}->connection()->commit();
・rollback
$this->{Model}->connection()->rollback();
== 複数テーブルの登録・更新 ==
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$connection->begin();
$connection->commit();
$connection->rollback();
ConnectionManagerで指定している「default」は、config/app.phpの「Datasources」で指定しているものになるが、
固定だとdebug機能がうまく使えなくなってしまうので、以下のようにした方が良いと思われる。
$this->loadModel('{Model}');
$connection = ConnectionManager::get($this->{Model}->defaultConnectionName());
Moelクラスに記述するのは、エラー処理などを考えると個人的に嫌いなので割愛
0 件のコメント:
コメントを投稿