Doctrine:对象的DQL - GROUP_CONCAT

时间:2015-12-30 20:58:44

标签: php sql symfony orm doctrine-orm

我正在使用Doctrine2 ORM在Symfony2网页上工作。

我有一个名为phone的列的付款表。问题是我需要通过电话号码对所有这些付款进行分组,但结果必须是电话下的一系列付款,而不是他们的计数(简单GROUP BY的结果)。

目前,我使用一种简单的算法,将简单的付款数组([])解析为关联数组(phone => [])。它有效,但我发现它对进一步开发有点无效。

我在想像GROUP_CONCAT这样的东西在处理对象,而不是字符串,但我还没找到。

我的DQL看起来像这样:

 SELECT p FROM payments as p WHERE = ...

我正在寻找类似的东西:

 SELECT GROUP_CONCAT(p) FROM payments as p GROUP BY p.phone WHERE = ...

我正在寻找的结果:

 array(5) {
      "123456789": [0 => Payment(), 1 => Payment()],
      "234567891": [0 => Payment()],
      ....
 }

第二个查询效果很好,因为付款已经定义了一个toString()方法,但我需要对该对象进行操作,所以我对字符串表示不满意。

在我撰写这篇文章时,我不得不承认数据库的设计可能不正确。 M:N(如用户(电话):付款)关系可能是实际的解决方案,但我不确定是否允许我对我们的数据库进行设计更改。

你会如何处理它?<​​/ p>

0 个答案:

没有答案