如何将多个分组的查询转换为Yii 1.1.14中的CActiveDataProvider?

时间:2017-04-23 17:23:03

标签: yii

我需要将具有多列group by子句的sql语句转换为Yii 1.1.4版中的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),
        ));

那么如何将我提供的sql语句转换为CActiveDataProvider格式?

1 个答案:

答案 0 :(得分:0)

你可以用两种方式 -

  • 创建sql视图,然后创建yii模型并在你的中使用它 控制器或页面视图。

  • 在现有模型中创建自定义搜索功能,并按

  • 使用分组

e.g。 -

<?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)
  ));
}
?>