这是可能的,在CakePHP v2。X根据条件修改默认布局(default.ctp),例如用户是否已登录。假设我有一个菜单:
"主页" "菜单项1" "菜单项2"
并且我想在用户登录到
后更改此设置:"主页" "菜单项1" "菜单项2" "菜单项3" "菜单项4"
我可以在哪里/如何做到这一点?我想我必须在某个地方调用"$this->layout('new-layout');",但我不确定确切的位置。
谢谢
如果你的两种布局(登录前/登录后)之间的差异太大,那么就制作两个布局&在你的AppController(在beforeFilter函数中)更改用户登录时的布局。
if($this->Auth->user()){
$this->layout = "new_layout";
}
如果只是关于一些菜单链接。您可以直接将condition设置为默认值。ctp文件。
if ($this->Session->read('Auth.User')){
//Add more menu for logged in users.
}
如果我没记错的话,你应该可以使用相同的布局,只需使用:
-- Menu Item 1
-- Menu Item 2
if ($authUser) {
-- Menu Item 3
-- Menu Item 4
}
你必须在控制器中设置以下内容:
$this->set('authUser', $this->Auth->user());
我已经有一段时间没有使用蛋糕了!