回答編集履歴
2
補足
    
        answer	
    CHANGED
    
    | @@ -2,4 +2,29 @@ | |
| 2 2 | 
             
            なるべくモデル内でやりたいなら、Hogeモデル内のinsert関数内で、Fugaモデルのsaveも一緒にやってもいいと思います。
         | 
| 3 3 |  | 
| 4 4 | 
             
            処理的にもパターン1は、戻り値とExceptionの両方を見ていて、問題ないと思います。
         | 
| 5 | 
            -
            モデルのinsert関数内でsave()の戻り値がfalseならExceptionを投げるほうがよりスマートかもしれませんけど
         | 
| 5 | 
            +
            モデルのinsert関数内でsave()の戻り値がfalseならExceptionを投げるほうがよりスマートかもしれませんけど
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Controller
         | 
| 8 | 
            +
            ```php
         | 
| 9 | 
            +
            if ($this->request->is('post')) {
         | 
| 10 | 
            +
                $this->Hoge->begin();
         | 
| 11 | 
            +
                try {
         | 
| 12 | 
            +
                    $this->Hoge->insert($this->request->data);
         | 
| 13 | 
            +
                    $this->Fuga->insert($this->request->data);
         | 
| 14 | 
            +
                    $this->Hoge->commit();
         | 
| 15 | 
            +
                    $this->redirect('/');
         | 
| 16 | 
            +
                } catch (Exception $e) {
         | 
| 17 | 
            +
                    $this->Hoge->rollback();
         | 
| 18 | 
            +
                }
         | 
| 19 | 
            +
            }
         | 
| 20 | 
            +
            ```
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            Model
         | 
| 23 | 
            +
            ```php
         | 
| 24 | 
            +
            public function insert($data) {
         | 
| 25 | 
            +
                $this->create();
         | 
| 26 | 
            +
                if(!$this->save($data)) {
         | 
| 27 | 
            +
                    throw new InternalErrorException('error');
         | 
| 28 | 
            +
                }
         | 
| 29 | 
            +
            }
         | 
| 30 | 
            +
            ```
         | 
1
補足
    
        answer	
    CHANGED
    
    | @@ -1,2 +1,5 @@ | |
| 1 1 | 
             
            複数のモデルそれぞれに保存するならパターン1のControllerでいいと思いますよ。
         | 
| 2 | 
            -
            なるべくモデル内でやりたいなら、Hogeモデル内のinsert関数内で、Fugaモデルのsaveも一緒にやってもいいと思います。
         | 
| 2 | 
            +
            なるべくモデル内でやりたいなら、Hogeモデル内のinsert関数内で、Fugaモデルのsaveも一緒にやってもいいと思います。
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            処理的にもパターン1は、戻り値とExceptionの両方を見ていて、問題ないと思います。
         | 
| 5 | 
            +
            モデルのinsert関数内でsave()の戻り値がfalseならExceptionを投げるほうがよりスマートかもしれませんけど
         | 
