2017-04-23 4 views
0

Yiiバージョン1.1.4のCActiveDataProviderに複数列のgroup by句を持つこのSQL文を変換する必要がありますか?列ごとに複数のグループを持つクエリをYii 1.1.14のCActiveDataProviderに変換する方法は?

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

CGridView検索機能を提供するには、CActiveDataProviderが必要です。どうやら、私は私がCActiveDataProvider形式になったSQL文を変換するので、どのように私CGridView

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

を実行し、検索機能の私のモデルでは、単純なリターンを持っていますか?

+1

sql viewを作成してyiiモデルを作成し、これをコントローラまたはページビューで使用します。別の解決策は、既存のモデルでカスタム検索機能を作成し、たとえば - '$ criteria-> group =" bookname、categorytitle、bookkey "; $ criteria-> order = "bookname、categorytitle、bookkey"; –

+0

あなたは答えとして選択することができるように、あなたは下のボックスにあなたの答えを入れておくべきです。ありがとう..それを転送.. – sasori

答えて

0

次の2つの方法を使用して行うことができます -

  • は、SQLビューとYiiのモデルを作成し、 コントローラやページビューでこれを使うよりも、してください。

などにより、既存のモデルと使用群では、カスタム検索機能を作成します。 -

<?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) 
)); 
} 
?> 
関連する問題