列出以下主要的代码,希望会对你有帮助
视图:
<?php
use yii\widgets\ListView;
ListView::begin([
'dataProvider'=>$dataProvider,
'itemView'=>'_item',
'layout'=>'{sorter}{items}{pager}',
'itemOptions'=>['class'=>'productlist_box'],
'pager'=>[
'maxButtonCount'=>10,
'nextPageLabel'=>Yii::t('app','下一页'),
'prevPageLabel'=>Yii::t('app','上一页'),
],
/*'sorter'=>[你会发现用DAO方式赋值,这里的sorter设置不会生效,请参见下面代码设置
],*/
]);
ListView::end();
?>
数据源:
$query = (new Query())
->select('*')
->from('m_product as p')
->leftJoin('m_allprod as a','p.proid=a.proid')
->where($where);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination'=>[
'pageSize'=>8,
],
'sort'=>[
'attributes'=>[
'clickcount'=>[
'label'=>'评论数'
],
'cdate'=>[
'label'=>'上架时间'
],
'buycount'=>[
'label'=>'销量'
],
],
]
]);
用dao方式赋值后,会发现sort排序不出现
解决办法:在ActiveDataProvider里面设置sort字段把需要的字段列出即可