我正在使用导航构建菜单。在我的配置文件中,我使用的是 uri(我无法让路由、控制器、动作正常工作)
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
// not sure why I can't use route, controller, action...
// for now, i'm using uri
'uri' => '/',
),
array(
'label' => 'About us',
'uri' => '/application/intro',
), ...
应用模块的路由是默认路由,这样设置
'application' => array(
'type' => 'Literal',
'options' => array(
'route' => '/application',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
现在,isActive 在我看来(部分)在调用时不起作用
<?php foreach ($this->container as $page): ?>
<li <?php echo $page->isActive()? 'class="' . $activeClass . '"' : '' ?>>
...
当我尝试手动执行此操作时,我正在尝试与 $this->url 进行比较。我意识到 $this->url 只返回路由的路径。这意味着,在我的示例中,当我在 /application/intro 中时,$this->url 只会返回 /application/ 并且不会返回“intro”控制器。
我的问题是,我如何才能返回带有控制器、操作等的 url?或者我可以做些什么来确保 isActive 可以正常工作。
提前致谢!
贾斯汀