如何确定请求在View(/ Template)中路由到哪个导航?
我有两个导航: 1 - 用户导航 2 - 管理员导航
如果用户以管理员身份登录系统,则两个导航栏都应该可访问(通过triggerdiv切换) 因此,如果管理员触发Usernavigation上的链接,我想在新请求后显示Usernavigation - 如果他触发Adminlink我想显示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 :(得分:0)
我现在提出了以下解决方案:
每个控制器都从Guest / User或Admin控制器
进行扩展在扩展控制器的构造中,我设置了导航键“:
protected $_sNavigationKey = 'guest';
public function __construct()
{
$this->getEventManager()->attach('dispatch', function ($e)
{
$this->layout()->setVariable('sNavigationKey', $this->_sNavigationKey);
});
}
现在我可以通过 $ sNavigationKey
的证明来检查/显示布局中的正确导航