こんにちは、ヘルパー クラス内からデータベースにクエリを実行できるかどうか、実行する必要があるかどうか、およびその方法を知る必要があります。
ありがとう
$ this-> set()を介してモデルへの参照を変数としてビューに渡し、それをクエリすることで可能ですが、そうすべきではありません。散らかっています;-)
CakePHPはMVCモデルを使用し、ヘルパーはビュー(MVCのV)の一部です-彼らの仕事は純粋にコントローラーから渡された(すでに利用可能な)情報を表示することです。
ビューに追加情報が必要な場合は、コントローラーがモデルにクエリを実行して取得しているはずです。
MVCモデルに慣れていない場合は、MVCモデルをよく読んでおくことをお勧めします。そうすれば、リファクタリングが必要になる可能性があります。
はい。ヘルパー ファイルからデータベースにクエリを実行できます。これを確認してください:-
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();