0

我是 CakePHP 的新手。这是我在我的一个 CakePHP 网站中使用的导航部分:

<?php
       $list=array(
                $this->Html->link('Home',array('controller'=>'pages','action'=>'index')),
                $this->Html->link('About',array('controller'=>'pages','action'=>'about')),array(
                                                                                             $this->Html->tag('span',null,array('class'=>'top')),
                                                                                             $this->Html->tag('span',null,array('class'=>'bottom')),
                                                                                             $this->Html->link('Sub Menu 1',array('controller'=>'','action'=>'')),
                                                                                             $this->Html->link('Sub Menu 2',array('controller'=>'','action'=>'')),
                                                                                             $this->Html->link('Sub Menu 3',array('controller'=>'','action'=>'')),
                                                                                          ),
                $this->Html->link('Gallery',array('controller'=>'pages','action'=>'gallery')),array(
                                                                                                 $this->Html->tag('span',null,array('class'=>'top')),
                                                                                                 $this->Html->tag('span',null,array('class'=>'bottom')),
                                                                                                 $this->Html->link('Sub Menu 1',array('controller'=>'','action'=>'')),
                                                                                                 $this->Html->link('Sub Menu 2',array('controller'=>'','action'=>'')),
                                                                                                 $this->Html->link('Sub Menu 3',array('controller'=>'','action'=>'')),
                                                                                              ),
                $this->Html->link('My Posts',array('controller'=>'pages','action'=>'myPosts/1')),
                $this->Html->link('Blog',array('controller'=>'pages','action'=>'blog')),
                $this->Html->link('Contact',array('controller'=>'pages','action'=>'contact')),
                $this->Html->link('Logout',array('controller'=>'users','action'=>'logout'))
             );
       echo $this->Html->nestedList($list);
?>

我想要的,“我的帖子”和“注销”菜单将在且只有用户登录时显示,否则不显示。怎么做 ?而且,您有什么更好的主意在 CakePHP 中制作导航栏吗?

这里span的标签仅用于设计问题。

4

1 回答 1

0

第一种解决方案

您必须为登录用户创建一个单独的数组,这可以通过 auth 函数来完成,例如

在控制器中

$this->set('authUser', $this->Auth->user());

或者

$this->set( 'authUser', $this->Auth->loggedIn());

在视图中

If($authUser){
     $list = array(/*without Post and Logout*/);
} else{
     $list = array(/*same complete array*/);
}

第二个解决方案

if ($this->Session->read('Auth.User')){
     $list = array(/*without Post and Logout*/);
} else{
     $list = array(/*same complete array*/);
}
于 2013-06-20T20:49:55.650 回答