我需要在CakePHP的app_controller中设置一个变量,然后在我的默认布局文件中使用它。
有没有办法设置这个变量?
答案 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);
}