skillup

技術ブログ

Database PHP

cakeでのトランザクション、コミット、ロールバック

投稿日:

cakePHP(2.X系)でのトランザクション、コミット、ロールバックについて。

cakePHPでトランザクションを書ける場合、Model内に

と書くことが一般的です。
http://book.cakephp.org/2.0/ja/models/transactions.htmlより引用。

ただし、ある程度の規模のWebアプリではトランザクションをスタートしてからコミットするまでに複数のモデルの処理を行うことが一般的です。

上記のソースではモデル内にトランザクション関連の処理を書いておりますが、そうのような処理の場合はトランザクション自体もモデルではなくコントローラー内に書くことになるでしょう。

その場合、トランザクションを管理する独立したモデルを用意しておき、そこから処理をよんだ方がよいでしょう。

ソースを書こうと思いましたが、検索元のリンクのほうがはるかにわかりやすいためリスペクトも込めて、リンクを貼ります。

http://d.hatena.ne.jp/pospome/20140416/1397664261

その他、参考にしたリンクは下記です。

http://qiita.com/uedatakeshi/items/780189183eb3a61d5bdc

-Database, PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Laravel5.4インストール&ルーティング

来月からの仕事でLaravel5.4を使うことになったのでテストがてら自宅で勉強。 とりあえず下記リンクが参考になりました。 Laravel5.4でシンプルなCMSを作るチュートリアル 初めてのLar …

no image

PHPの無名関数+array系の関数

PHPの無名関数について。 PHP5.3.0以降で実装され、概念としては知っていましたが、あまり使ったことがありませんでした。 今開発しているPHPの案件で無名関数のソースをみたので、復習もかねてメモ …

no image

SQL結合 サブクエリに関して

今回はサブクエリに関してです。 もちろんSQL実践入門を読み進めています。 SQL上ではテーブル、ビュー、サブクエリというのは機能的にはそれほど変わらず主にパフォーマンスの点で違いがでてきます。 以下 …

no image

SQLインジェクション

セキュリティ関係の知識がぬるいのでちょっとお勉強。 知っていることもあるが復習もかねて勉強を。 Contents1 SQLインジェクションとは?2 被害3 対策4 参考サイト・書籍5 ソース SQLイ …

no image

cakePHP3 serialize&compact

Contents1 serialize2 compact serialize cakePHP3の記述で

みたいな記述をよく見かけていま …