- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须做一些过滤器,比如获取给定部门的人员,我想知道最好的方法。
其中一些将需要连接多个表。
有人知道 CDbCriteria
和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性。
我在有关查询生成器的 Yii 文档中找到了这个:
It offers certain degree of DB abstraction, which simplifies migration to different DB platforms.
CDbCriteria 对象是否相同?好点了吗?
最佳答案
CDbCriteria
的概念在使用 Yii 的 active record 时被使用。 (AR) 抽象(通常一直都是)。 AR 要求您已创建 models用于数据库中的各种表。
Query builder一种非常不同的访问数据库的方式;实际上,它是一个结构化包装器,允许您以编程方式构建 SQL 查询,而不仅仅是将其写成字符串(作为额外的好处,它还提供了一定程度的数据库抽象,正如您提到的那样)。
在典型的应用程序中,几乎不需要使用查询构建器,因为 AR 已经提供了大量的功能,并且它还提供了相同程度的数据库抽象。
在某些情况下,您可能希望运行一种非常特定类型的查询,但通过 AR 发出该查询不方便或性能不佳。然后你有两个选择:
如您所见,查询生成器在大多数时候并不是那么有用。仅当您想要编写高度自定义且同时动态构造的查询时,才有意义使用它。
您提到的示例功能可以而且应该使用 AR 实现。
关于ActiveRecord (CDbCriteria) 与 QueryBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14299029/
我正在使用 CDbCriteria 来过滤 CListView(产品页面) $criteria = new CDbCriteria(); $criteria->join ='LEFT
我有以下查询: select `t`.`id` AS `id`, `rm`.`role_id` AS `role_id`, `t`.`id` AS `sequence`,
我在从数据库中检索数据时遇到问题,我已将表 user 三次加入到表 family_tree 中。 CdbCommand 会返回从第一个表(family_tree)中选择的值,但不会返回从第二个和第三个
我正在使用 yii 和 CDbCriteria 通过连接从 3 个表中获取结果。这是我到目前为止所做的: $criteria->select = 't.product_id, t.title, t1.
我正在尝试在 Yii 框架中使用 CDBCriteria 进行 Join 查询。问题是连接查询成功运行,但它不显示其他表中的列。 我正在按照以下方式进行 $criteria = new CDbCrit
我正在开发 Yii 驱动的应用程序。我想转换这个 SQL: SELECT m.sendDate, m.status, c.name, c.email, mt.name, mt.subject, CON
我正在尝试从多个表中获取数据,但以这个错误结束: SQL:SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“p.firstname” $criteria = new C
我必须做一些过滤器,比如获取给定部门的人员,我想知道最好的方法。 其中一些将需要连接多个表。 有人知道 CDbCriteria 和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性。 我在有关查
有没有办法从 CDbCriteria 获取查询的字符串表示形式? ?用于测试和调试目的。 最佳答案 您可以像这样使用日志记录和分析配置您的 main.php: 'components'=>array(
我最近开始了一个使用 Yii 的项目,我正在努力适应查询生成器。现在,我想使用连接进行查询并在查询中访问连接表的数据,但我无法使以下内容正常工作: 我的(简化的)数据库表: 客户(#id,姓名) 员工
当我尝试使用 CDbCriteria 对记录进行计数时,我得到 Active record "Hotels"is trying to select an invalid column "count(t
我想按日期过滤记录,所以我添加了 createDate BETWEEN ' . $dateRange['start'] . ' AND ' . $dateRange['end'] 按照我的标准,但我得
我一直在努力将以下 SQL 转换为 CDBCriteria 以与 CActiveDataProvider 一起使用:“选择 PresetDeviceLink。、设备。 FROM PresetDevic
如何在 YIi 中将自定义查询转换为 CDbCriteria。我已经尝试过这样的操作,可能不完整: $criteria=new CDbCriteria; $criteria->select='t.
在 YII 应用程序的登录页面上,我设置了以下条件来验证用户: $criteria->condition = 'uname ILIKE :username OR email_id ILIKE :use
我需要通过 CDbCriteria 运行以下语句在 Yii 中: SELECT `tbl_products`.`id` FROM `tbl_products` INNER JOIN `tbl_prod
我有一个帖子表和一个用户表。帖子使用帖子表中的authorId 列链接到用户。我想使用 CGridView 的 CDbCriteria 选择至少拥有一篇或多篇帖子的用户。下面是我正在尝试实现的 sql
我有 3 张 table : 银行 银行详细信息 bank_bank_details 它们之间的关系: 银行模式: public function relations() { retu
我试图弄清楚如何使用 Yii 的 CDbCriteria 构建一个查询,该查询相当于以下内容: SELECT * FROM user u JOIN (
我对 YII 还很陌生,但仍在努力理解它。但是据我所知,当你做类似的事情时 yourModel->findAll(criteria) 类似于“Select * from”吗?还是更像是“从中选
我是一名优秀的程序员,十分优秀!