在app_controller中设置一个变量,并在CakePHP布局中使用它

时间:2011-01-05 10:29:54

标签: cakephp controller

我需要在CakePHP的app_controller中设置一个变量,然后在我的默认布局文件中使用它。

有没有办法设置这个变量?

2 个答案:

答案 0 :(得分:12)

我认为他的意思是,他不知道在哪里设置变量,因为他不在控制器内的特定功能中。要让变量(或其他任何东西真正可用)到处都可用,你必须将它放在AppController中,如下所示:

function beforeFilter()
  {
  $this->set('whatever', $whatever);
  }

有关这些回调函数的更多信息here

答案 1 :(得分:5)

AppController中的回调函数是$ this-> set()变量的位置,您希望它们可用于所有视图和布局。在所有控制器操作之前调用beforeFilter()。如果要在操作运行后设置视图变量,请使用beforeRender()。您可以在$ this-> viewVars associative array中访问其他视图变量。

function beforeRender() {
    $new = "Universal " . $this->viewVars['layoutTitle']; 
    $this->set('universalTitle', $new);
}