Yii2过滤网格视图,带有多个$ _GET参数

问题描述 投票:0回答:1

我正在尝试创建一个超链接(存储在MySQL Innodb表中),以便打开应用了多个过滤器的gridview。有一个过滤器(所以有一个$ _GET参数)它正在工作:

.../index?Search%5Bfilter1%5D=something%25

$filter1 = ArrayHelper::getValue(Yii::$app->request->getQueryParams(), 'Search.filter1'));

但是我想再添加一个这样的:

.../index?Search%5Bfilter1%5D=something%25&Search%5Bfilter2%5D=something%25
...
$filter2 = ArrayHelper::getValue(Yii::$app->request->getQueryParams(), 'Search.filter2'));

字符串something%25?Search%5Bfilter2%5D=something%25进入filter1,当然没有找到记录。

我以为我可以简单地从标题栏复制路线/地址,它应该可以工作。

public function actionIndex() {
    $searchModel = new Search;
    $dataProvider = $searchModel->search($_GET);

    Tabs::clearLocalStorage();

    Url::remember();
    \Yii::$app->session['__crudReturnUrl'] = null;

    return $this->render('index', [
                'dataProvider' => $dataProvider,
                'searchModel' => $searchModel,
    ]);
}

更新:我注意到存储在数据库中的&在工具提示中显示为?,如果我用鼠标移动它。当然它试图打开与?的链接。我不确定它是否与问题有关,因为我试图将它改为%26&,但没有区别。

你能指点我正确的方向吗?谢谢!

更新:我认为这与to this one有关。

gridview get yii2 filtering
1个回答
0
投票

尝试将getQueryParams()代替$ _GET传递给您的搜索模型

$dataProvider = $searchModel->search(Yii::$app->request->getQueryParams());
© www.soinside.com 2019 - 2024. All rights reserved.