我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法。
其中一些将需要连接多个表。
有人知道CDbCriteria
Query Builder 和 Query Builder 之间的主要区别吗?我特别想知道与数据库的兼容性。
我在有关 Query Builder 的 Yii 文档中发现了这一点:
它提供了一定程度的数据库抽象,简化了向不同数据库平台的迁移。
CDbCriteria 对象是否相同?这个会比较好吗?
我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法。
其中一些将需要连接多个表。
有人知道CDbCriteria
Query Builder 和 Query Builder 之间的主要区别吗?我特别想知道与数据库的兼容性。
我在有关 Query Builder 的 Yii 文档中发现了这一点:
它提供了一定程度的数据库抽象,简化了向不同数据库平台的迁移。
CDbCriteria 对象是否相同?这个会比较好吗?
CDbCriteria
当使用 Yii 的活动记录(AR) 抽象时(通常是所有时间)使用的概念。AR 要求您为数据库中的各种表创建模型。
查询生成器访问数据库的方式非常不同;实际上,它是一个结构化包装器,它允许您以编程方式构造 SQL 查询,而不仅仅是将其写为字符串(作为额外的好处,它还提供了您提到的一定程度的数据库抽象)。
在典型的应用程序中,几乎不需要使用查询构建器,因为 AR 已经提供了大量功能,并且还提供了相同程度的数据库抽象。
在某些情况下,您可能希望运行一种非常特定类型的查询,这种查询不方便或无法通过 AR 发出。然后你有两个选择:
如您所见,查询生成器在大多数情况下并不是那么有用。只有当您想编写非常定制的同时动态构造的查询时,使用它才有意义。
您提到的示例功能可以而且应该使用 AR 来实现。