2017-04-10 74 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