我正在尝试使用路由创建一个带有查询字符串的url,如下所示:
$this->url('users') -> /users
$this->url('users', ['sort' => 'desc']) -> /users?sort=desc
然而,这似乎不起作用(第二个帮助器实际上输出/users
)。根据此unofficial, out-of-date documentation,曾经有一种方法可以通过将/query
附加到路由名称来实现此目的,但是这会产生一个找不到路由的异常。
使用当前的url helper可以做到这一点吗?
发布于 2012-10-09 02:22:59
您可以为用户路由创建子路由,如下所示:
'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_terminate
设置为true
!
发布于 2015-05-23 00:10:13
这可以使用当前的URL视图助手yes来完成。
$this->url('users', [], array('query' => array('sort' => 'desc')))
您不需要设置查询字符串子路由。只要你为'users‘设置了一个路由,你就可以在你的控制器中查找'sort’参数,并在需要的地方使用它。
https://stackoverflow.com/questions/12785190
复制相似问题