0

私のコントローラーでは、いくつかの値を設定し、それらをアプリのさまざまなビュー全体に存在 (またはライブ) させたいと考えています。

beforeFilter 関数を使用する必要があることをどこかで読みましたが、それが正しいかどうか、どのようにそれを行うかはわかりません。

だから私のコントローラーで私は持っていたい

public function page1() {
  $this->Model->setId('123');
}

public function page2() {
  $this->Model->getId(); // would able to get the Id that was set from page1 function
  $this->Model->setName('Bob');
}

public function page3() {
  $this->Model->getId(); 
  $this->Model->getName();
}

ご不明な点がございましたら、お知らせください。

4

2 に答える 2

0

次のような配列ですべてのデータを返す単一のモデル メソッドを用意します。

return array('varName' => $value, 'varName2' => $value2);

次に、フィルターの前にコントローラーからこのモデルメソッドを呼び出して、単純に行うことができます

$this->set(ClassRegistry::init('MyModel')->commonViewVars());

たとえば、 requestAction() を使用するなど、より良いアドバイスを提供できると思われることについて説明する場合、これは、何をしようとしているのかに応じて別のオプションになる可能性があります。

すべてのページに渡したいデータに応じて、キャッシュすることを検討する必要があります。たとえば、メニューの場合は「永久に」キャッシュし、メニューが変更されたときにキャッシュを更新するだけです。

于 2013-04-29T23:05:41.023 に答える