Yii: обратный порядок отображения CGridView - PullRequest
1 голос
/ 13 июля 2011

Как я могу изменить порядок CGridView (по умолчанию отображается новейший)?

У меня сейчас есть код, сгенерированный Gii:

public function actionAdmin() {
    $model = new Post('search');
    $model->unsetAttributes();
    if (isset($_GET['Post']))
        $model->attributes = $_GET['Post'];

    $this->render('admin', array(
        'model' => $model,
    ));

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

Если вы установите порядок как часть запроса, вы не сможете использовать сортировщики столбцов. Вам необходимо обновить свойство сортировки, в котором создается поставщик данных, что в данном случае, вероятно, в упомянутой функции @ xiaohan2012. Это будет выглядеть примерно так:

    return new CActiveDataProvider('Post', array(
        'criteria'=>$criteria,
        'sort'=>array(
            'defaultOrder'=>'update_time DESC',
        ),
    ));

ИЛИ для создания полностью настраиваемой сортировки вам необходимо создать новый объект сортировки, например:

    $sort = new CSort();
    $sort->defaultOrder = 'update_time DESC';
    $sort->attributes = array(
        'post_name'=>array(
            'asc'=>'post_name asc',
            'desc'=>'post_name desc',
        ),
        'update_time'=>array(
            'asc'=>'update_time desc',
            'desc'=>'update_time asc',
        ),
        [... additional columns]
    );

В этом случае ваш поставщик данных будет выглядеть примерно так:

    return new CActiveDataProvider('Post', array(
        'criteria'=>$criteria,
        'sort'=>$sort,
    ));
1 голос
/ 14 июля 2011

Вы можете попробовать соответствующий класс Post protected / models / Post.php ) и найти функцию search .Вот где содержимое области поиска контролируется.

Попробуйте это:

$criteria->order("create_time desc");

Или обратитесь к: http://www.yiiframework.com/doc/api/1.1/CDbCriteria

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...