Yii的可排序属性(Yii Sortable Attributes)

2019-07-29 17:16发布

我有以下talbes但是当我定义的名字排序它不工作(不显示姓名的链接,我可以点击和排序列表视图)。 尽管如此,如果我的用户名是工作就好了。

| 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',
    ),
));

Answer 1:

这只有在工作排序的dataProvider属性设置明确的(在这些情况下,如果你是通过在另一个模型的属性排序)

试试这个

 $dataProvider =  new CActiveDataProvider('YumUser', array(
                'criteria' => $criteria, 
                'sort'=>array(
                    'attributes'=>array(
                         'firstname'=>array(
                              'asc'=>'firstname',
                              'desc'=>'firstname DESC',
                          ),
                     ),
                 ),
                'pagination'=>array(
                    'pageSize'=>50,
                    )));


文章来源: Yii Sortable Attributes
标签: php yii