【CakePHP】モデルにメソッドを追加して実行する

2019年7月29日

バージョン:CakePHP 2.2.2
CakePHPを使っていると、コントローラに全てのfindを記述してわかりにくくなる場合があります。
そうゆう時はモデルのメソッドを追加して、その中にfindを記述することによって、
コントローラがわかりやすくなることがあると思います。

・findの例(下記をコントローラに書いていた)

$this->モデル名->find('all',
            array(
                'fields' => array('id','iteme1','iteme2','iteme3'),
                'conditions' => array(
                        'item1' => true,
                        'OR' => array(
                            'iteme2' => 'aaa',
                            'iteme3' => 'bbb'
                        ),
                'limit' => 10,
                'page' => 1,
                'order' => array('id')
            )
        );

このfindをモデルにメソッドを作り、コントローラから呼び出す形にします。
・モデル

function findTest($page) {
    return $this->find('all',
            array(
                'fields' => array('id','iteme1','iteme2','iteme3'),
                'conditions' => array(
                        'item1' => true,
                        'OR' => array(
                            'iteme2' => 'aaa',
                            'iteme3' => 'bbb'
                        ),
                'limit' => 10,
                'page' => $page,
                'order' => array('id')
            )
        );
}

・コントローラ

$page = 2;
$this->モデル名->findTest($page);

スポンサーリンク