dポイントプレゼントキャンペーン実施中!

質問させて頂きます。

codeigniterで複数のモデルをまたいでトランザクションを設定したいと考えています。
・Aモデル(Aテーブルの処理を実装)
・Bモデル(Bテーブルの処理を実装)

codeigniterのトランザクション処理を調べると下記のようなサンプルを見つけました。
-----------------------------------
$this->db->trans_start();
$this->db->query('SQL クエリ...');
$this->db->query('もう一つのクエリ...');
$this->db->query('さらにもう一つのクエリ...');
$this->db->trans_complete();
-----------------------------------
上記の方法でトランザクションを設定することが出来ると思うのですが、
この方法だと、Aモデルの中で、Aテーブル、Bテーブルの処理をしないといけないということでしょうか?
-----------------------------------
【Aモデル】
$this->db->trans_start();
$this->db->query(Aテーブルのクエリ);
$this->db->query(Bテーブルのクエリ);
$this->db->trans_complete();
-----------------------------------

個人的にAモデル・Bモデルを呼び出すコントローラー側でトランザクションの設定が出来ればと考えていたので、何かしらの方法があればご教授頂けると助かります。
もしそのような方法が無い場合は諦めたいと思います。

質問の内容に足りない点や矛盾した箇所などあった場合はお伝え下さい。

よろしくお願いいたします。

A 回答 (1件)

コントローラーの中で


$this->load->database();
$this->db->trans_start();
$this->model_a->更新();
$this->model_b->更新();
$this->db->trans_complete();

コントローラー内で処理することの是非については、以下が参考になるでしょう
http://codeigniter.jp/user_guide_ja/overview/mvc …
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記の方法で試みてみたいと思います!

お礼日時:2016/02/26 11:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!