如何在 Yii2 / GridView 中更改排序器参数?我
How to change sorter param in Yii2 / GridView?I
我有两个表,它们的列名几乎相同,使用了两种不同的搜索模型(都使用 ActiveDataProvider
's),所以当我按列对一个进行排序时,另一个也会受到影响。
我已经尝试在我的第二个 GridView
:
中设置这个
'sorter' => [
'class' => 'yii\widgets\LinkSorter',
'sortParam' => 'sortB',
],
但是没有用。
编辑: 排序参数是传递给服务器的 GET 变量:?sort=amount
,或 ?param=1&sort=created_at
。
$sortParam
is a property of yii\data\Sort
, which handles the sorting on the DataProvider level and is accessable via $dataProvider->sort。
GridView上的$sorter
只是一个可以显示排序链接的widget,但是继承自BaseListView
,GridView默认不显示。
您应该像这样在 DataProvider 上设置 属性:
$dataProvider->sort->sortParam = 'user-sort';
同样适用于pageParam
。
指南中有一节 Multiple GridViews on one page 正好涵盖了这个主题。
我有两个表,它们的列名几乎相同,使用了两种不同的搜索模型(都使用 ActiveDataProvider
's),所以当我按列对一个进行排序时,另一个也会受到影响。
我已经尝试在我的第二个 GridView
:
'sorter' => [
'class' => 'yii\widgets\LinkSorter',
'sortParam' => 'sortB',
],
但是没有用。
编辑: 排序参数是传递给服务器的 GET 变量:?sort=amount
,或 ?param=1&sort=created_at
。
$sortParam
is a property of yii\data\Sort
, which handles the sorting on the DataProvider level and is accessable via $dataProvider->sort。
GridView上的$sorter
只是一个可以显示排序链接的widget,但是继承自BaseListView
,GridView默认不显示。
您应该像这样在 DataProvider 上设置 属性:
$dataProvider->sort->sortParam = 'user-sort';
同样适用于pageParam
。
指南中有一节 Multiple GridViews on one page 正好涵盖了这个主题。