Навигация в CakePHP

Я новичок в 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 теги используются только для оформления дизайна.

1 ответ

Решение

1-е решение

Вы должны создать отдельный массив для вошедшего в систему пользователя, и это можно сделать с помощью функций аутентификации, таких как

В контроллере

$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*/);
}

2-е решение

if ($this->Session->read('Auth.User')){
     $list = array(/*without Post and Logout*/);
} else{
     $list = array(/*same complete array*/);
}
Другие вопросы по тегам