How can you add query parameters in the ZF2 / ZF3 url view helper

后端 未结 3 1399
误落风尘
误落风尘 2020-12-01 14:11

I\'m attempting to create a url with a query string using a route, like so:

$this->url(\'users\') -> /users
$this->url(\'users\', [\'sort\' => \'         


        
相关标签:
3条回答
  • 2020-12-01 14:47

    Since version 2.1.4 you come across user error

    Query route deprecated as of ZF 2.1.4; use the "query" option of the HTTP router\'s assembling method instead

    Usage example:

    $name    = 'index/article';
    $params  = ['article_id' => $articleId];
    $options = [
            'query' => ['param' => 'value'], 
        ];
    $this->url($name, $params, $options);
    
    0 讨论(0)
  • 2020-12-01 14:59

    You can create a child route for your users route like this:

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

    then you can assemble $this->url('users/query', array('sort' => 'desc')).

    Don't forget to set may_terminate to true!

    0 讨论(0)
  • 2020-12-01 15:07

    This can be done using the current URL view helper yes.

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

    You do not need to have query string child routes setup. As long as you have a route setup for 'users', you can just look for the 'sort' param in your controller and use where required.

    0 讨论(0)
提交回复
热议问题