6

こんにちは、ヘルパー クラス内からデータベースにクエリを実行できるかどうか、実行する必要があるかどうか、およびその方法を知る必要があります。

ありがとう

4

2 に答える 2

3

$ this-> set()を介してモデルへの参照を変数としてビューに渡し、それをクエリすることで可能ですが、そうすべきではありません。散らかっています;-)

CakePHPはMVCモデルを使用し、ヘルパーはビュー(MVCのV)の一部です-彼らの仕事は純粋にコントローラーから渡された(すでに利用可能な)情報を表示することです。

ビューに追加情報が必要な場合は、コントローラーがモデルにクエリを実行して取得しているはずです。

MVCモデルに慣れていない場合は、MVCモデルをよく読んでおくことをお勧めします。そうすれば、リファクタリングが必要になる可能性があります。

于 2010-10-28T12:13:33.733 に答える
2

はい。ヘルパー ファイルからデータベースにクエリを実行できます。これを確認してください:-

class YourHelperNameHelper extends AppHelper {

    function queryDbFromHelper()
    {
        // Load your model here
        App::import('Model','ModelName');
        $this->ModelName = new ModelName();

        //now you can use find method or another method to query DB.
        return $this->ModelName->find('all'); 
    }
}
// Include this helper in controller
var $helpers = array('YourHelperName');

// call this function in helper file.
$this->YourHelperName->queryDbFromHelper();
于 2016-04-26T05:02:17.197 に答える