2017-04-10 87 views
0

嗨,我目前工作的一个proyect不是在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一起工作,我搜索了文档但仍然没有明确的答案。 谢谢。

回答

0

您可以从CoronaTrabajos模型搜索功能中完成此操作。内部搜索功能添加如下的订单条件。

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

那就是它。这里

+0

非常感谢,我只是在研究这个项目,之前从未使用Yii,而且与Laravel(我习惯了) –

0

两件事情:

要启用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, 
     ); 

然后用一个DataProvider回到你的$排序,

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

另外如果你想添加默认排序然后

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

希望它有帮助。

+0

的方式更为不同,如果这能解决您的问题,请将其标记为已接受。 – Hmmm