ActiveRecord(CDbCriteria)与QueryBuilder?
我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法 其中一些需要连接多个表 有人知道ActiveRecord(CDbCriteria)与QueryBuilder?,activerecord,yii,phpactiverecord,Activerecord,Yii,Phpactiverecord,我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法 其中一些需要连接多个表 有人知道CDbCriteria和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性 我在关于查询生成器的Yii文档中发现了以下内容: 它提供了一定程度的数据库抽象,简化了到不同数据库平台的迁移 CDbCriteria对象是否也一样?更好吗?在处理Yii的(AR)抽象(通常总是这样)时,使用了CDbCriteria的概念。AR要求您已经为数据库中的各种表创建了 一种非常不同的访问数据库的方式;实际上,它
CDbCriteria
和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性
我在关于查询生成器的Yii文档中发现了以下内容:
它提供了一定程度的数据库抽象,简化了到不同数据库平台的迁移
CDbCriteria对象是否也一样?更好吗?在处理Yii的(AR)抽象(通常总是这样)时,使用了
CDbCriteria
的概念。AR要求您已经为数据库中的各种表创建了
一种非常不同的访问数据库的方式;实际上,它是一个结构化的包装器,允许您以编程方式构造SQL查询,而不只是将其作为字符串写出(作为额外的好处,它还提供了一定程度的数据库抽象,正如您所提到的)
在典型的应用程序中,几乎不需要使用查询生成器,因为AR已经提供了大量的功能,而且它还提供了相同程度的数据库抽象。
在某些情况下,您可能希望运行一种非常特定的查询类型,这种查询不方便或无法通过AR发出。然后您有两个选项: