簡體   English   中英

如何在ZF2 / ZF3 url視圖助手中添加查詢參數

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

我正在嘗試使用路由創建帶有查詢字符串的URL,如下所示:

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

然而,這似乎不起作用(第二個助手實際輸出/users )。 根據這個非官方的,過時的文檔 ,曾經有一種方法可以通過向路由名稱附加/query來實現這一點,但是這會給出一個路由未找到的異常。

可以使用當前的url幫助程序完成嗎?

自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視圖幫助程序yes來完成。

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

您不需要設置查詢字符串子路由。 只要您為“用戶”設置了路徑,就可以在控制器中查找“排序”參數,並在需要時使用。

您可以為此用戶路由創建子路由,如下所示:

'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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM