1

HTML を動的に作成することを含む CakePHP ヘルパーを作成する必要があります。しかし、コードの一部は、1 ~ 2 のデータベース クエリを作成することです。これらのクエリは、入力するすべてのテキストがデータベース内にあるため、このヘルパーにとって非常に重要です。

MVC パターンによると、ビュー (ヘルパー) で DB クエリを作成するべきではありません。PHPUnitのテストにも合わせたいので、この場合に最適な設計は何だろうと思っています。

どんなアイデアでも大歓迎です...

4

3 に答える 3

2

View仕事は純粋にから渡された(すでに利用可能な)情報を表示することなので、次のようControllerになると思います。

あなたのコントローラー:

public function foo() {
    $bar = $this->MyModel->find('all');
    $this->set(array('bar' => $bar));
}

あなたの見解:

$result = $this->MyHelper->foo($bar);
于 2012-10-10T18:43:42.580 に答える
1

コンポーネントを作成できます。

/**
* 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);
于 2012-10-10T19:29:08.213 に答える
0

ヘルパーではなく要素になる可能性があるものであれば、CakePHP の RequestAction [詳細はこちら]を使用して、要素に必要なデータを取得できます。

次に、任意のパラメーターを Element に渡し、それらを使用してモデル呼び出しを行うコントローラーに渡すことができます。

Element はビューを表示するだけなので、これは MVC に非常によく適合しますが、データを取得する場所を指定し (引き続きモデルを使用して取得する)、非常に再利用可能になります。

于 2012-10-10T22:42:52.207 に答える