Yii:反向CGridView显示顺序

时间:2011-07-13 16:24:40

标签: php yii

如何反转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 个答案:

答案 0 :(得分:4)

如果您将订单设置为查询的一部分,则无法使用列分拣机。您需要更新创建数据提供程序的sort属性,在这种情况下可能在@ 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 :(得分:1)

您可以尝试相应的类发布(在 protected / models / Post.php 中)并找到 搜索 功能。 这是搜索区域内容受控的地方。

试试这个:

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

或参考: http://www.yiiframework.com/doc/api/1.1/CDbCriteria