Yii Установить порядок сортировки по умолчанию в модели

Я создаю веб-приложение с помощью Yii с расширением yii-user. На странице со списком пользователей отобразите список пользователей, упорядоченный create_at.

Я хочу отобразить порядок списка пользователей по имени пользователя.

Это исходный код:

 public function search()
    {
        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        $criteria->compare('username',$this->username,true);
        $criteria->compare('password',$this->password);
        $criteria->compare('email',$this->email,true);
        $criteria->compare('activkey',$this->activkey);
        $criteria->compare('create_at',$this->create_at);
        $criteria->compare('lastvisit_at',$this->lastvisit_at);
        $criteria->compare('superuser',$this->superuser);
        $criteria->compare('status',$this->status);

        return new CActiveDataProvider(get_class($this), array(
            'criteria'=>$criteria,
            'pagination'=>array(
                'pageSize'=>Yii::app()->getModule('user')->user_page_size,
            ),
        ));
    }

Я добавил этот код.

$criteria->order = "username ASC";

После добавления список пользователей сортируется только по имени пользователя независимо от того, нажат ли заголовок.

Как установить порядок сортировки по умолчанию?


person Thu Ra    schedule 26.04.2013    source источник


Ответы (1)


Используйте свойство сортировки:

return new CActiveDataProvider(get_class($this), array(
    'criteria' => $criteria,
    'sort' => array(
        'defaultOrder' => 'username ASC', 
    ),
));
person Samuel Liew♦    schedule 26.04.2013
comment
как глобально сортировать по описанию первичного ключа - person Yatin Mistry; 14.02.2015