Zend framework2 zend 2:通过url()帮助器设置路由参数将被配置中的默认设置覆盖

Zend framework2 zend 2:通过url()帮助器设置路由参数将被配置中的默认设置覆盖,zend-framework2,url-routing,Zend Framework2,Url Routing,我有一个由3部分组成的URL,我正在使用URL()帮助器在我的模板中设置参数,如下所示: <a href="<?php echo $this->escapeHtml($this->url('helpdesk/tickets', array( 'ticketStatus' => 'closed','group' => abcde))); ?>">View closed tickets</a> 因此,当我加载页面时,锚的url是m

我有一个由3部分组成的URL,我正在使用URL()帮助器在我的模板中设置参数,如下所示:

<a href="<?php echo $this->escapeHtml($this->url('helpdesk/tickets', array(
    'ticketStatus' => 'closed','group' => abcde))); ?>">View closed tickets</a>
因此,当我加载页面时,锚的url是myapp/helpdesk/tickets//abcde


发生了什么事?为什么url()帮助程序没有设置此参数?

请尝试以下操作:'/tickets[/:ticketStatus][/:group]'

double//“?如何访问控制器中的组?//“因为默认值为空字符串“”,url()设置不正确。在我正在做的控制器中:$this->params('group')。组参数工作正常。因此,您可以为无状态添加空白状态,并且可以通过$this->params()->fromRoute('group','ifNoGroupTakeThis')访问此数据;和$this->params()->fromRoute('ticketStatus','ifnoticetStatusTakeThis');我不明白,空白只是一个默认值。我希望能够使用url()动态设置它。这不是解决这个问题的办法。我在这里误用了url(),或者路由配置不正确-这是我想了解\解决的问题。好的,我认为路由中有问题,请尝试更改:tickerStatus更改为[/:tickerStatus],而/:group更改为[/:group],并且您在DefaultsId中没有控制器。此操作删除了tickerStatus的默认值,现在可以正常工作,但是为什么?我可以接受这个,但现在我不能强制使用这些参数。这太令人困惑了,我有没有遗漏一些基本的东西?我使用的是标准的父和子路由,这是设计的行为吗?保留ticketStatus的默认值(唯一的问题是dafeult ticketStatus为空),所以如果您可以将默认状态设置为“default”。我不知道你的应用程序,但在我看来,票证应该总是有状态,甚至像‘noStatus’,因为没有状态是状态的定义,我想我可能会打开另一个线程,专门询问为什么这些参数不能是强制性的。
'router' => array(
    'routes' => array(
        'helpdesk' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/helpdesk',
                'defaults' => array(
                    'controller' => 'Helpdesk\Controller\Helpdesk',
                    'action' => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'tickets' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/tickets/:ticketStatus/:group',
                        'defaults' => array(
                            'action' => 'tickets',
                            'group' => '',
                            'ticketStatus' => '',
                        ),