HTML を動的に作成することを含む CakePHP ヘルパーを作成する必要があります。しかし、コードの一部は、1 ~ 2 のデータベース クエリを作成することです。これらのクエリは、入力するすべてのテキストがデータベース内にあるため、このヘルパーにとって非常に重要です。
MVC パターンによると、ビュー (ヘルパー) で DB クエリを作成するべきではありません。PHPUnitのテストにも合わせたいので、この場合に最適な設計は何だろうと思っています。
どんなアイデアでも大歓迎です...
HTML を動的に作成することを含む CakePHP ヘルパーを作成する必要があります。しかし、コードの一部は、1 ~ 2 のデータベース クエリを作成することです。これらのクエリは、入力するすべてのテキストがデータベース内にあるため、このヘルパーにとって非常に重要です。
MVC パターンによると、ビュー (ヘルパー) で DB クエリを作成するべきではありません。PHPUnitのテストにも合わせたいので、この場合に最適な設計は何だろうと思っています。
どんなアイデアでも大歓迎です...
View
仕事は純粋にから渡された(すでに利用可能な)情報を表示することなので、次のようController
になると思います。
あなたのコントローラー:
public function foo() {
$bar = $this->MyModel->find('all');
$this->set(array('bar' => $bar));
}
あなたの見解:
$result = $this->MyHelper->foo($bar);
コンポーネントを作成できます。
/**
* Set data info
* @access public
* @return void
*/
public function setData()
{
$data = $this->Model->find('first', $params);
$this->Controller->set('data', $data);
}
そして、レイアウトにヘルパーを印刷します。
echo $this->MyNewHelper->someHtml($data);
ヘルパーではなく要素になる可能性があるものであれば、CakePHP の RequestAction [詳細はこちら]を使用して、要素に必要なデータを取得できます。
次に、任意のパラメーターを Element に渡し、それらを使用してモデル呼び出しを行うコントローラーに渡すことができます。
Element はビューを表示するだけなので、これは MVC に非常によく適合しますが、データを取得する場所を指定し (引き続きモデルを使用して取得する)、非常に再利用可能になります。