php zend-framework2 zend-framework3 zend-framework-routing

php - ¿Cómo se pueden agregar parámetros de consulta en el ayudante de vista de url ZF2/ZF3?



zend-framework2 zend-framework3 (3)

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

Ruta de consulta en desuso a partir de ZF 2.1.4; use la opción "consulta" 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);

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

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

Sin embargo, esto no parece funcionar (el segundo ayudante en realidad produce /users ). De acuerdo con esta documentación no oficial y desactualizada, hubo una manera de hacerlo agregando /query el nombre de la ruta, sin embargo, esto da una excepción de ruta no encontrada.

¿Se puede hacer esto usando el ayudante de url actual?


Esto se puede hacer usando el ayudante de vista de URL actual, sí.

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

No es necesario tener configuradas las rutas secundarias de cadena de consulta. Siempre que tenga una configuración de ruta para "usuarios", puede buscar el parámetro "ordenar" en su controlador y utilizarlo donde sea necesario.


Puede crear una ruta secundaria para la ruta de sus 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'', ), ), ),

luego puede ensamblar $this->url(''users/query'', array(''sort'' => ''desc'')) .

No te olvides de establecer may_terminate en true !