foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

CakePHP 入力項目と非入力項目が混在するコントローラのパターン

環境

疑問

データベースから初期値を取得する項目群があり、項目群には入力項目と非入力項目が混在している場合、コントローラのロジックはどのようなパターンとなるか?

回答

コントローラは以下のパターンになる。

<?php
function edit(){
    $model = Model::find('first', array(
        'conditions' => array(
            ...
        ),
    ));
    $this->set(compact('model'));
    
    if(empty($this->data)){
        $this->data = $model;
        return;
    }
    
    if(! $this->Model->save($this->data)){
        return;
    }
    
    $this->redirect('index');
}
?>