¿Cómo se pueden agregar parámetros de consulta en el asistente de vista de URL ZF2 / ZF3?

Estoy intentando crear una url con una cadena de consulta usando una ruta, como esta:

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

Sin embargo, esto no parece funcionar (el segundo ayudante realmente genera /users ). De acuerdo con esta documentación no oficial y desactualizada, una vez hubo una forma de hacerlo añadiendo /query el nombre de la ruta, sin embargo, esto da una excepción de ruta no encontrada.

¿Se puede hacer esto usando el url helper actual?

Puede crear una ruta hija para la ruta de los usuarios de esta manera:

 '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', ), ), ), 

entonces puedes armar $this->url('users/query', array('sort' => 'desc')) .

¡No olvides establecer may_terminate en true !

Desde la versión 2.1.4 te encuentras con un error de usuario

Ruta de consulta obsoleta a partir de ZF 2.1.4; utilice la opción “consultar” del método de ensamblaje del enrutador HTTP en su lugar

Ejemplo de uso:

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

Esto se puede hacer usando el asistente de visualización de URL actual sí.

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

No necesita tener la configuración de las rutas secundarias de la cadena de consulta. Siempre que tenga una configuración de ruta para ‘usuarios’, puede buscar el parámetro ‘ordenar’ en su controlador y usarlo cuando sea necesario.