对模型 Yii 框架的数组进行排序


嗨,我

目前正在研究一个不是我在 Yii 框架上的项目,我有这个咨询数据库

public function actionAdmin()
{
    $model=new CoronaTrabajos('search');
    $model->unsetAttributes();  // clear any default values
    if(isset($_GET['CoronaTrabajos'])) {
        $model->attributes = $_GET['CoronaTrabajos'];
    }
    $this->render('admin',array(
        'model'=>$model,
    ));
}

该模型有一个名为"fecha_publicacion"的字段,它是一种日期类型,我想根据该字段对值进行升序或降序排序,但我找不到一种方法,我是 Yii 的新手,我已经搜索了文档但仍然没有明确的答案。谢谢。

您可以从CoronaTrabajos模型搜索功能执行此操作。 在搜索功能内添加如下所示的订单条件。

$criteria = new CDbCriteria();
....
//add there below line
$criteria->order = 'fecha_publicacion DESC';
...
...

就是这样。

这里有两件事:

要对列启用 ASC 和 DESC 排序,必须在模型中定义它,如下所示

$sort = new CSort;
/* Sort criteria */
$sort->attributes = array(
            'col_name'=>array(
                'asc'=>"col_name", //you can add special logic too
                'desc'=>"col_name desc",
           ),
           '*' //adds all other columns,
       );

然后向数据提供者退还您的$sort,

return new CActiveDataProvider($this, array(
            'pagination'=>false,
            'criteria'=>$criteria,
            'sort'=>$sort,
        ));

另外,如果要添加默认排序,则

$sort->defaultOrder= array(
    'col_name'=>CSort::SORT_ASC,
);

希望对您有所帮助。

最新更新