我有以下的方法,但是当我将firstname定义为sortable时它不起作用(不显示firstname作为链接,我可以单击并对List View进行排序)。尽管如此,如果我的用户名用户工作得很好。
| User
| - userid
| - username
| Profile
| - userid
| - firstname
| - lastname
我有控制器:
$criteria->with=array(
'profile',
);
$criteria->addCondition('status = 1 or status = 2 or status = 3');
if($search)
$criteria->addCondition("firstname = '{$search}'");
$dataProvider=new CActiveDataProvider('YumUser', array(
'criteria' => $criteria,
'pagination'=>array(
'pageSize'=>50,
)));
在视图中:
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
'template' => '{summary} {sorter} {items} <div style="clear:both;"></div> {pager}',
'sortableAttributes'=>array(
'firstname',
),
));
答案 0 :(得分:4)
这仅在显式设置dataProvider的sort属性时才有效(在这些情况下,您使用另一个模型中的属性进行排序)
试试这个
$dataProvider = new CActiveDataProvider('YumUser', array(
'criteria' => $criteria,
'sort'=>array(
'attributes'=>array(
'firstname'=>array(
'asc'=>'firstname',
'desc'=>'firstname DESC',
),
),
),
'pagination'=>array(
'pageSize'=>50,
)));