2015-07-06 25 views
1

在搜索model.php多个表排序我有2台州和国家现在我出状态模块和我的国家名单,我展示国家也在状态列表像而使用Yii2

StateName CountryName ActionButtons 
Victoria  Australia  edit | delete 
NSW   Australia  edit | delete 
Auckland  New Zealand edit | delete 
California USA   edit | delete 

我想排序列状态和国家名称,但国家名称排序不工作在这里。

因为我在YII版本1.1.16上工作我使用CSort但我不知道如何在YII2中使用它。请帮助我在YII2中完成这项工作。

+0

显示您的代码,请 – scaisEdge

+0

哎@scaisEdge感谢寻找我找到解决方案 –

回答

1

我找到的解决方案将帮助别人

我stateSearch模型添加setSort为数据提供程序

$dataProvider->setSort([ 
      'attributes' => [ 
       'country_name' => [ 
        'asc' => ['country_name' => SORT_ASC, 'country_name' => SORT_ASC], 
        'desc' => ['country_name' => SORT_DESC, 'country_name' => SORT_DESC], 
        'default' => SORT_ASC 
       ], 
       'state_name' => [ 
        'asc' => ['state_name' => SORT_ASC, 'state_name' => SORT_ASC], 
        'desc' => ['state_name' => SORT_DESC, 'state_name' => SORT_DESC], 
        'label' => 'state_name', 
        'default' => SORT_ASC 
       ],     
      ] 
     ]); 

$query->andFilterWhere([ 
      'state_name' => $this->state_name, 
      'country_name' => $this->country_name, 
     ]); 

和工作!

与参考以下链接

http://www.yiiframework.com/wiki/621/filter-sort-by-calculated-related-fields-in-gridview-yii-2-0/