Yii可排序属性

时间:2012-06-04 11:18:25

标签: php yii

我有以下的方法,但是当我将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',
    ),
));

1 个答案:

答案 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,
                    )));