Как добавить параметры запроса в помощнике просмотра URL-адреса ZF2 / ZF3

Я пытаюсь создать URL-адрес с строкой запроса с использованием маршрута, например:

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

Однако это не работает (второй помощник фактически выводит /users ). Согласно этой неофициальной, устаревшей документации, когда-то был способ сделать это, добавив /query к имени маршрута, однако это дает исключение, не найденное маршрутом.

Можно ли это сделать с помощью текущего помощника URL?

    Вы можете создать дочерний маршрут для своего пользователя следующим образом:

     '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 !

    Начиная с версии 2.1.4 вы сталкиваетесь с ошибкой пользователя

    Маршрут запроса устарел с ZF 2.1.4; вместо этого используйте параметр «запрос» для метода сборки HTTP-маршрутизатора

    Пример использования:

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

    Это можно сделать с помощью текущего помощника просмотра URL да.

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

    Вам не нужно настраивать дочерние маршруты строки запроса. Пока у вас есть настройка маршрута для «пользователей», вы можете просто искать параметр «sort» в своем контроллере и использовать там, где это необходимо.