我有两个表格,列名相同,使用两个不同的搜索模型(都使用ActiveDataProvider
),所以当我按列排序时,另一个也会受到影响。
我已尝试在我的第二个GridView
中设置此内容:
'sorter' => [
'class' => 'yii\widgets\LinkSorter',
'sortParam' => 'sortB',
],
但无济于事。
编辑:排序参数是传递给服务器的GET变量:?sort=amount
或?param=1&sort=created_at
。
答案 0 :(得分:5)
$sortParam
是yii\data\Sort
的属性,它处理DataProvider级别的排序,可通过$dataProvider->sort访问。
GridView上的$sorter
只是一个可以显示排序链接的小部件,但它继承自BaseListView
,默认情况下不会显示在GridView中。
您应该在DataProvider上设置此属性,如下所示:
$dataProvider->sort->sortParam = 'user-sort';
同样适用于pageParam
。
指南中有一节关于Multiple GridViews on one page正好涵盖了这个主题。