你怎么能在ZF2 / ZF3网址视图助手添加查询参数(How can you add query p

2019-06-18 11:36发布

我试图使用路由来创建一个查询字符串的URL,就像这样:

$this->url('users') -> /users
$this->url('users', ['sort' => 'desc']) -> /users?sort=desc

然而,这似乎并没有工作(第二个辅助实际上输出/users )。 根据这一非官方的,出的最新文档曾经有一个方式通过附加做到这一点/query到路由的名字,然而,这给出了一个路由未发现异常。

这可以使用当前网址助手做什么?

Answer 1:

您可以为您的用户喜欢这条路子路线:

'users' => array(
    'type' => 'Literal',
    'options' => array(
        'route' => '/users',
        'defaults' => array(
            '__NAMESPACE__' => 'User\Controller',
            'controller' => 'Index',
            'action' => 'list',
        ),
    ),
    'may_terminate' => true,
    'child_routes'  => array(
        'query' => array(
            'type' => 'Query',
        ),
    ),
),

然后就可以组装$this->url('users/query', array('sort' => 'desc'))

不要忘记设置may_terminatetrue



Answer 2:

由于2.1.4版本中,你遇到用户错误

查询路由弃用ZF 2.1.4的; 使用HTTP路由器\的组装方法的“查询”选项,而不是

用法示例:

$name    = 'index/article';
$params  = ['article_id' => $articleId];
$options = [
        'query' => ['param' => 'value'], 
    ];
$this->url($name, $params, $options);


Answer 3:

这可以使用当前的URL视图助手是来完成。

$this->url('users', [], array('query' => array('sort' => 'desc')))

你并不需要有查询字符串子路由设置。 只要你有一个路径设置为“用户”,你可以只认准“排序” PARAM在你的控制器,并使用在需要。



文章来源: How can you add query parameters in the ZF2 / ZF3 url view helper