问题标签 [doctrine-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
157 浏览

php - 选择与其他两个实体关联的实体,在 Doctrine2 中连接三个表

我有三种类型的实体,

  1. 用户
  2. 团体
  3. 网站

用户可以有网站,他们也可以属于组这些实体中的每一个也有一个名称。

这是我的 Doctrine2 定义:

所以现在如果我想在一个名为“Admins”的组中找到所有用户,我可以这样做:

我还可以通过以下方式获取与网站“Google.com”相关联的所有用户:

现在,如果我想获取“Admins”中的所有用户,并且还与“Google”网站相关联,我该怎么办?

如果我使用 TSQL,我会加入这三个表,我该如何在 Doctrine 中做到这一点?

我必须使用 DQL 吗?DQL 会是什么样子?

0 投票
1 回答
69 浏览

mysql - orderBy & groupBy 查询

我的数据库条目

我的查询应该是我只得到带有 id 的条目:

当我这样做时:

我得到:1, 4, 5。即使我这样做e.last_changed ASC,它也不起作用。

我只想要那些拥有last_changed和不同的条目shop_id。我该怎么做?

谢谢!

0 投票
0 回答
483 浏览

php - Doctrine_Query、作为对象的标准和访问者模式。可能的?

最近我一直在处理一堆将 Doctrine 1.2 集成到 Zend Framework 1.11 中的项目,这真的很有趣。

我在服务层中实现的最常见方法之一是根据作为参数传递的一组标准返回我的域模型集合的方法。

我一直在用这样的接口创建它们:

实现如下所示:

随着我对更多标准的需求增加,实现变得更加混乱。不用说,到处都有大量的代码重用,更新代码是一项如此乏味的任务。

我一直在想,如果我可以将标准作为对象而不是数组段传递,使用访问者模式和这样的东西会更好:

使用LibSys_Criteria_CategoryLibSys_Criteria_Author实现一个可能如下所示的通用接口:

因此,只需遍历提供的一组标准对象并将Doctrine_Query对象传递给它们,因为它们轮流操作它以满足需求:

这种方式不仅使它们更易于使用,而且使服务可扩展,标准对象可重用,并且一切都更易于维护。

但是,为了使这项工作更加稳健,需要能够检查Doctrine_Query对象并检查任何现有的连接、条件等。这是因为两个完全不同的标准可能需要相同的一组条件或相同的条件并非不可能连接集。在这种情况下,第二个标准可以简单地重新使用现有的连接和/或相应地进行调整。此外,不难想象一个标准的一组条件与另一个条件相互不兼容的情况,在这种情况下应该保证抛出异常。

所以我的问题是:

有没有办法检查Doctrine_Query并获取有关已加入哪些组件或已应用于它的任何条件集的信息?

0 投票
1 回答
3085 浏览

symfony1 - 在没有指定关系的表上加入 Doctrine 查询

我有两个表在 schema.yml 中没有相互定义的关系。但是,表 1 有一个对表 2 主键的外键引用。显然,我没有很好地设计数据库,但现在是缓解的时候了。

我必须在两个表之间进行左连接,并加上一个 where 子句,该子句将检索我想要的选择行。为此,我会:

这通常应该这样做,但它不会,因为它返回的是分类表中的所有行,而与 where 条件无关。我在想,这是因为列中没有指定关系吗?那将是荒谬的,因为查询有效,仅在教义上下文中无效。

谢谢

0 投票
1 回答
738 浏览

symfony1 - 访问为空的左连接成员时的教义痛苦

我的模型中有一个 Doctrine 查询,说 Model_1Table.class.php 与 Model_2 连接。Model_2 在多对一关系上与 Model_1 相关。(它确实是一对一的关系,而不是多对一的关系,但架构是这样设计的)

我的查询是:

检查 SF 调试器日志,它按应有的方式检索信息,保留 Model_1 中满足 where 子句的所有表记录,并保留 Model_2 的所有值以及那些不存在的空值。

当我想访问此信息并根据表中是否存在 model_2 记录有条件地呈现信息时,痛苦就开始了。我喜欢这样:

现在基于此它应该真的可以工作,但我认为正在发生的事情是对于 model2 的空值它失败了。我该如何推断,因为如果我删除上述记录中的 if-else 语句并简单地使用 foreach 循环访问 Model2Record 的集合,则检索 Model2Record 中的可用行,但是它当然不会访问空值. 从本质上讲,我从中获得的信息就是我通常从内部连接中获得的信息。

要提出一个问题,我如何访问 Model1 的记录,其中 Model2 记录为空值?

0 投票
1 回答
304 浏览

php - 如何获得一个学说循环来查找分组记录的数量

我正在处理一个返回所有已发布记录的查询,并按最新的 updated_version 对它们进行分组和排序。

然后我过滤该结果以显示在过去 24 小时、一周和一个月内更新的结果。

所有的作品花花公子。但是,我想添加一个条件,即如果这三个日期条件中的每一个都没有更新记录,则回显“没有更新记录”。

我很好奇我是否可以在查询中隔离这些组并对其进行检查,或者可能在循环中设置一个变量。循环的问题是,我可以在循环中获得 0 结果条件,但是因为它正在检查循环内部,所以我得到循环中每条记录的“未找到结果”的回声。

好的,这是查询:

和循环:

这只是三个循环中的一个,但我想你明白了我的意图。显然,这是返回的循环:

昨天更新了记录。昨天更新了记录。昨天更新了记录。...

这是不希望的。

那么,从查询中,我可以检查 groupBy 是否大于 0?当然,我可以在不设置三个查询来获得结果的情况下做到这一点吗?

0 投票
1 回答
413 浏览

php - 如何获取在 Doctrine ORM 中重复的特定列?

如何通过 Doctrine ORM 获取具有重复名称的特定列?

我正在使用 Zend 制作的自定义引擎开发一个项目。问题是我在 2 个表(c_naslovi 和 c_sportovi)中有重复的列名

我可以重命名列吗?我该怎么做?我是学说新手,请回答 n00b 问题:)

0 投票
1 回答
78 浏览

php - Doctrine2 产品和特征映射问题

我正在制作一个需要成为多商店解决方案的电子商务解决方案。在建立产品及其功能之间的关联时,我被严重卡住了。由于它是一个多商店解决方案,我需要每个产品的动态功能可能性。我想出了三个实体:Product、FeatureKind 和 FeatureValue。

  • FeatureKind 具有基本特征名称,如Size、Color、Style等。还具有与 FeatureValue 实体的 M:M 连接
  • FeatureValue 显然包含 FeatureKind 的值,例如Small、Medium、Green、Red、Blue、Full-Sleeved等。
  • 产品实体通过 M:M 关联连接到 FeatureKind

我在这种类型的结构中遇到了一些问题:

  • 如果我有一个只有 Small size的 Product 怎么办,它也不应该在选项中显示 Medium 。如果一个产品只有绿色,它不应该同时显示红色和绿色,等等。
  • 其次,如果我的产品只有小号绿色和大号红色怎么办?这将如何解决?

我确定我需要同时改变我的结构和架构,幸运的是该项目在 Symfony2 中,我只需要制作产品包。

我很乐意在这里发布实体,但我的问题是概念而不是代码。如果您需要查看它,只需发表评论,我将编辑问题。

0 投票
3 回答
1390 浏览

mysql - 根据条件选择查询和计数

我想选择所有类别、子类别并计算属于子类别的业务数量。这是我正在使用的 SQl 查询。

但是我还有更多要做,business_count 应该根据他们所属的城市进行过滤,即最后我想选择所有类别,子类别,但 business_count 应该有一个子句WHERE city.id = 1,为此我想我必须使用 count 作为子查询我无法弄清楚。

下面是从fi_business_subcategory到的关系结构fi_city

1)fi_business_subcategory

2)fi_business

3)fi_suburb

4)fi_city

我试过这样的东西,但这似乎不起作用

我应该如何建立查询来实现我想要的?

0 投票
1 回答
42 浏览

doctrine - Doctrine2:多进程中的实体可见性

这是网上的一个example.php:

问题:当 example2.php 询问时会发生什么:

? null 或对象 $page?

我假设 example.php 仍在运行并且还没有调用 $em->flush() 。

编辑:

也许这也是我如何称呼 $em 的决定性因素: