タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

cakephpとtransactionに関するt_yodoのブックマーク (2)

  • CakePHPでトランザクション制御 | へびにっき

    環境: CakePHP 1.3 CakePHPのModelクラスには直接トランザクションを制御するメソッドがない。そこで例えば次のようにAppModelにメソッドを定義する。 class AppModel extends Model { function begin() { return $this->getDataSource()->begin($this); } function commit() { return $this->getDataSource()->commit($this); } function rollback() { return $this->getDataSource()->rollback($this); } } しかしこの方法ではテストがやりにくい。明示的にトランザクションを制御したい時というのは、複数のテーブルにまたがる複雑なロジックを組むことが多いので

  • CakePHP 1.3でのトランザクション処理の方法と注意点 - (DxD)∞

    処理内容 モデル「ModelA」のデータをModelA::save()で更新。 モデル「ModelB」のデータをhasManyの関連を持つデータとともにModelB::saveAll()で作成(トランザクション処理)。 (モデル「ModelB」のデータの作成に失敗した場合はエラー処理後に処理を継続。) モデル「ModelA」のデータをModelA::save()で更新。 $data = array(...); $this->ModelA->create(null); $this->ModelA->set($data); $this->ModelA->save(); ... $data = array(...); if (!$this->ModelB->saveAll($data)) { エラー処理 } ... $data = array(...); $this->ModelA->creat

    t_yodo
    t_yodo 2010/06/28
    これはcakeのバグでしょ。saveAllがバリデーションに失敗した場合、コミットもロールバックもされず、トランザクションが開始された状態のままになるようです
  • 1