Yii中CDbCriteria常用总结

来源:互联网 发布:逐浪cms使用人多不多 编辑:程序博客网 时间:2024/05/23 00:00

Yii的Active Recorder包装了很多,可以看源码。

Active Recorder

Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

在计算机领域中,表示编译器为每个被激活的函数分配的内存空间。
活动记录一般都存在栈中。因为栈结构比较简单,硬件能够支持。
Active Record 和 Row Gateway (行记录入口)十分相似,但前者是领域模型,后者是一种数据源模式。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将这种关系映射为对象的关联和聚集。
Active Record 适合非常简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。如果遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合 Data Mapper (数据映射器)使用。
Active Record 驱动框架一般兼有 ORM 框架的功能,但 Active Record 不是简单的 ORM,正如和 Row Gateway 的区别。著名的例子是全栈(Full Stack) Web 开发框架 Ruby on Rails ,其默认使用一个纯 Ruby 写成的 Active Record 框架来驱动 MVC 中的模型层。
$criteria = new CDbCriteria;$criteria->addCondition("id=1");//查询条件,即where id=1$criteria->addInCondition("id",array(1,2,3));//表示where id in (1,2,3);$criteria->addNotINCondition("id",array(1,2,3));//表示 where id not in$criteria->addCondition("id=1","OR");//OR条件,多条件的时候,该条件是OR而非AND

$criteria->addSearchCondition('name','分类');//搜索条件,其实代表了。。where name like '%分类%'     $criteria->addBetweenCondition('id', 1, 4);//between1 and 4      $criteria->compare('id',1);   //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,                                    //即如果第二个参数是数组就会调用addInCondition         $criteria->addCondition("id = :id");    $criteria->params[':id']=1;         $criteria->select = 'id,parentid,name';//代表了要查询的字段,默认select='*';     $criteria->join = 'xxx'; //连接表    $criteria->with = 'xxx';//调用relations      $criteria->limit =10;   //取1条数据,如果小于0,则不作处理     $criteria->offset =1;   //两条合并起来,则表示 limit 10 offset1,或者代表了。limit 1,10     $criteria->order = 'xxx DESC,XXX ASC' ;//排序条件    $criteria->group = 'group 条件';    $criteria->having = 'having 条件 ';    $criteria->distinct = FALSE;//是否唯一查询


原创粉丝点击