ZF2:使用URL助手和重用查询参数(ZF2: using url helper and reuse

2019-08-03 08:33发布

我想重新使用查询参数在一个视图中使用URL帮手。 这是我目前的网址:

http://localhost/events/index?__orderby=name&__order=asc

我使用在视图中的代码:

$this->url('events/index', array('__page' => '2'), true);

我想获得此网址:

http://localhost/events/index?__orderby=name&__order=asc&__page=2

而是我得到这个:

http://localhost/events/index?controller=Application\Controller\Events&__page=2

这是我module.config.php文件中路线:

'events' => array(
    'type' => 'segment',
    'options' => array(
        'route' => '/eventos[/:action]',
        'constraints' => array(
            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
        ),
        'defaults' => array(
            'controller' => 'Application\Controller\Events',
            'action' => 'index',
        ),
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'index' => array(
            'type' => 'Query',
        ),
    ),
),

我究竟做错了什么? 谢谢你的帮助。

Answer 1:

我知道你在寻找的是一个查询路由类型捕捉查询字符串,你作为一个孩子的路线:

'route' => array(
    'type'    => 'literal',
    'options' => array(
        'route'    => 'page',
        'defaults' => array(
        ),
    ),
    'may_terminate' => true,
    'child_routes'  => array(
        'query' => array(
            'type' => 'Query',
            'options' => array(
                'defaults' => array(
                    'foo' => 'bar'
                )
            )
        ),
    ),

然后,您可以使用视图助手来产生并追加查询字符串为您服务。 如果不使用查询孩子的路线,那么助手将不理会你的查询字符串。

$this->url(
    'page/query',
    array(
        'name'=>'my-test-page',
        'format' => 'rss',
        'limit' => 10,
    )
);

然后,您可以设置第三个参数为TRUE,让助手为你想在你的例子做使用当前参数。

有一个在文档的例子:

http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html



Answer 2:

你可以使用这样的事情,但查询参数的arent在我的情况下重复使用。

$this->url(
    'page/query',
    array(),
    array(
        'query' => array(
            'name'=>'my-test-page',
            'format' => 'rss',
            'limit' => 10,
        )
    ),
    true
);

所以,如果你想重用的查询参数,你不需经过与你的新的合并它们,然后所有的人都添加到查询阵列(3参数)。



文章来源: ZF2: using url helper and reuse query parameters