Как определить, при какой навигации запрос направляется в 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',
),
),
),
если возможно, я хотел бы знать и подтверждение навигационных клавиш из массива навигации.
я понятия не имею, как я мог получить к ним доступ, и я не нашел некоторые ссылки помощи до сих пор ..
Я пришел к следующему решению:
каждый контроллер расширяется от гостевого / пользовательского или административного контроллера
в конструкции расширенного контроллера я установил навигационную клавишу «:
protected $_sNavigationKey = 'guest';
public function __construct()
{
$this->getEventManager()->attach('dispatch', function ($e)
{
$this->layout()->setVariable('sNavigationKey', $this->_sNavigationKey);
});
}
Теперь я могу проверить / показать правильную навигацию в макете с помощью доказательства $ sNavigationKey
Других решений пока нет …