CSqlDataProvider,可直接使用SQL查询,代替CActiveDataProvider,实现多表嵌套等复杂查询

需求:

进行较复杂的多表嵌套,关系比model中定义的要复杂,CActiveDataProvider此时就显得无力,局限性暴露。

YII提供CSqlDataProvider数据集,直接执行SQL语句,弥补了CActiveDataProvider的缺陷。

CSqlDataProvider与CActiveDataProvider在使用上的不同:

CSqlDataProvider不支持用criteria来定义查询条件,所以需要把所有条件语句SQL语句,group by,having什么的随便你用,支持用sort定义排序;

CSqlDataProvider得到的结果不是用对象来定义,而是用数组来定义,所以调用的时候需要注意

譬如使用CListView输出内容,则item view文件中$data->title会出错,需要改用$data['title']

具体可参考官方API:http://www.yiiframework.com/doc/api/1.1/CSqlDataProvider

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏