是否可以在CakePHP v 2.x中根据条件修改默认布局(default.ctp) - 例如,如果用户已登录。 我们假设我有一个菜单:
“主页”“菜单项1”“菜单项2”
我想在用户登录后更改此内容:
“主页”“菜单项1”“菜单项2”“菜单项3”“菜单项4”
在哪里/如何实现这一目标?我假设我必须调用“$ this-> layout('new-layout');”在某个地方,但我不确定究竟在哪里。
由于
答案 0 :(得分:2)
如果您的两个布局(登录之前/之后)之间的差异太大,那么制作两个布局&如果用户已登录,则在AppController中(在beforeFilter函数中)更改布局。
if($this->Auth->user()){
$this->layout = "new_layout";
}
如果只是一些菜单链接。您可以直接将条件放在default.ctp文件中。
if ($this->Session->read('Auth.User')){
//Add more menu for logged in users.
}
答案 1 :(得分:0)
如果我的记忆正确地为我服务,你应该能够使用相同的布局:
-- Menu Item 1
-- Menu Item 2
if ($authUser) {
-- Menu Item 3
-- Menu Item 4
}
您必须在控制器中设置以下内容:
$this->set('authUser', $this->Auth->user());
自从我使用Cake之后已经有一段时间了!