2017-04-23 50 views
0

我需要將這個具有多列組by子句的sql語句轉換爲Yii版本1.1.4中的CActiveDataProvider嗎?如何在Yii 1.1.14中將多個按列分組的查詢轉換爲CActiveDataProvider?

select * from my_table_name group by bookname,categorytitle,bookkey order by bookname,categorytitle,bookkey asc; 

我需要一個CActiveDataProvider來提供CGridView搜索功能。很顯然,我只有在我的搜索功能模型的簡單迴歸,運行我的CGridView

return new CActiveDataProvider(get_class($this), 
     array(
      'criteria' => $criteria, 
      'sort' => array(
       'defaultOrder' => 'id ASC' 
      ), 
      'pagination' => array('pageSize' => ActiveRecord::PAGE_SIZE), 
     )); 

所以如何轉換,我給到CActiveDataProvider格式的SQL語句?

+1

使sql視圖,而不是創建yii模型,並在你的控制器或頁面視圖中使用它。另一種解決方案在您現有的模型中創建自定義搜索功能,並通過例如 - '$ criteria-> group =「bookname,categorytitle,bookkey」; $ criteria-> order =「bookname,categorytitle,bookkey」;' –

+0

您應該將答案放在底部的框中​​,以便我可以選擇它作爲答案。謝謝..請轉移它..大聲笑 – sasori

回答

0

你可以用兩種方式 -

  • 使SQL視圖,比創建警予模型,並在您的 控制器或頁面視圖中使用此。通過

例如在現有的模式,並運用組

  • 創建自定義搜索功能 -

    <?php 
    public function new_search(){ 
        $criteria = new CDbCriteria(); 
    
        ... 
        .. 
    
        $criteria->group = "bookname, categorytitle, bookkey"; 
        $criteria->order = "bookname, categorytitle, bookkey"; 
    
        return new CActiveDataProvider($this, array(
        'criteria'=>$criteria, 
        'pagination'=>array('pageSize'=>100) 
    )); 
    } 
    ?> 
    
  • 相關問題