Yii中CDbCriteria常用总结

分手后的思念是犯贱 2022-06-08 10:38 580阅读 0赞

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 中的模型层。

  1. $criteria = new CDbCriteria;
  2. $criteria->addCondition("id=1");//查询条件,即where id=1
  3. $criteria->addInCondition("id",array(1,2,3));//表示where id in (1,2,3);
  4. $criteria->addNotINCondition("id",array(1,2,3));//表示 where id not in
  5. $criteria->addCondition("id=1","OR");//OR条件,多条件的时候,该条件是OR而非AND
  6. $criteria->addSearchCondition('name','分类');//搜索条件,其实代表了。。where name like '%分类%'
  7. $criteria->addBetweenCondition('id', 1, 4);//between1 and 4
  8. $criteria->compare('id',1); //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,
  9. //即如果第二个参数是数组就会调用addInCondition
  10. $criteria->addCondition("id = :id");
  11. $criteria->params[':id']=1;
  12. $criteria->select = 'id,parentid,name';//代表了要查询的字段,默认select='*';
  13. $criteria->join = 'xxx'; //连接表
  14. $criteria->with = 'xxx';//调用relations
  15. $criteria->limit =10; //取1条数据,如果小于0,则不作处理
  16. $criteria->offset =1; //两条合并起来,则表示 limit 10 offset1,或者代表了。limit 1,10
  17. $criteria->order = 'xxx DESC,XXX ASC' ;//排序条件
  18. $criteria->group = 'group 条件';
  19. $criteria->having = 'having 条件 ';
  20. $criteria->distinct = FALSE;//是否唯一查询

发表评论

表情:
评论列表 (有 0 条评论,580人围观)

还没有评论,来说两句吧...

相关阅读

    相关 yii2小技巧

    arrayHelper::map()这个方法可以将一个数组拆成一个键-值对映射的多维数组或对象数组。在下拉菜单中经常可以使用到 $array = [