Zend 2 определит маршрутизируемую / используемую навигацию в представлении

Как определить, при какой навигации запрос направляется в View (/ Template)?

У меня есть две навигации:
1 — Навигация пользователя
2 — Навигация администратора

Если пользователь вошел в систему как администратор, должны быть доступны обе навигационные панели (переключаются через triggerdiv)
Так что, если администратор запускает ссылку на пользовательскую навигацию, я хотел бы показать пользовательскую навигацию после нового запроса — если он запускает административную ссылку, я хотел бы показать AdminNavbar.

Вот массив навигации из module.config.php:

'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'user',
'resource' => 'navigation',
'privilege' => 'home',
),
array(
'label' => 'Login',
'route' => 'auth',
'resource' => 'navigation',
'privilege' => 'auth',
),
array(
'label' => 'Logout',
'route' => 'logout',
'resource' => 'navigation',
'privilege' => 'logout',
),
),
'admin' => array(
array(
'label' => 'Home',
'route' => 'admin',
'resource' => 'navigation',
'privilege' => 'home',
),
array(
'label' => 'Users',
'route' => 'users',
'resource' => 'navigation',
'privilege' => 'users',
),
array(
'label' => 'Logout',
'route' => 'logout',
'resource' => 'navigation',
'privilege' => 'logout',
),
),
),

если возможно, я хотел бы знать и подтверждение навигационных клавиш из массива навигации.
я понятия не имею, как я мог получить к ним доступ, и я не нашел некоторые ссылки помощи до сих пор ..

0

Решение

Я пришел к следующему решению:

каждый контроллер расширяется от гостевого / пользовательского или административного контроллера

в конструкции расширенного контроллера я установил навигационную клавишу «:

protected $_sNavigationKey = 'guest';

public function __construct()
{
$this->getEventManager()->attach('dispatch', function ($e)
{
$this->layout()->setVariable('sNavigationKey', $this->_sNavigationKey);
});
}

Теперь я могу проверить / показать правильную навигацию в макете с помощью доказательства $ sNavigationKey

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]