如何在ZF2 / ZF3网址视图助手中添加查询参数

我正在尝试使用路由创建具有查询字符串的URL,如下所示:

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

然而,这似乎不起作用(第二个助手实际上输出)。根据这个非官方的,过时的文档,曾经有一种方法可以通过附加到路由名称来执行此操作,但是这给出了一个找不到路由的异常。/users/query

这可以使用当前的url帮助程序完成吗?


答案 1

从版本2.1.4开始,您遇到用户错误

查询路由自 ZF 2.1.4 起已弃用;改用 HTTP 路由器组装方法的“查询”选项

用法示例:

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

答案 2

这可以使用当前的 URL 视图帮助程序 yes 来完成。

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

您不需要设置查询字符串子路由。只要您为“用户”设置了路由,就可以在控制器中查找“排序”参数,并在需要时使用。


推荐