在我的symfony2 / doctrine2应用程序中,用户可以标记引起管理员注意的元素。

我需要检索所有标记的元素(它们实现VoteInterface)。

我正在尝试执行以下操作,但均未成功,但由于我需要选择至少一个根实体,因此无法正常工作。 如果选择一个根实体,则会出现内存分配错误。

无论如何,我什至不确定这是否是正确的方法。 如何选择与投票相关的所有元素? 当然,我可以为每种实体类型构建一个querybuilder,但这不是我要在这里完成的工作,我想要一个单一的查询构建器。

public function getFlagsQueryBuilder()
{
    return $this
        ->createQueryBuilder('v')
        ->select('u, c, p')
        ->leftJoin('v.user', 'u')
        ->leftJoin('v.comment', 'c')
        ->leftJoin('v.post', 'p')
        ->groupBy('u, c, p')
        ->addSelect('u, c, p')
        ->where('v.value = ?1')
        ->setParameter(1, 0)
        ;
}

#1楼 票数:0

如果遇到内存问题,可能是因为您同时在内存中加载了太多行。

从Doctrine文档中: http : //doctrine-orm.readthedocs.org/en/latest/reference/batch-processing.html#iterating-large-results-for-data-processing

它可以让您遍历结果而不会出现内存问题。 它将在需要时加载行。

您还可以使用以下方法查询有限数量的行:

查询:: setMaxResults($ maxResults)

查询:: setFirstResult($ offset)

如果计划在列上获取COUNT,SUM,AVG或任何其他聚合函数,建议您查询以获取这些信息,而不是从迭代中获取聚合信息。 查询会更快。

我希望这会有所帮助

  ask by Sébastien translate from so

未解决问题?本站智能推荐:

1回复

Symfony实体存储库中的教义QueryBuilder摘要函数?

有什么方法可以在Doctrine的QueryBuilder中使用min() (或等效方法)? 我正在处理的页面显示了当前(或模拟)用户的发票表。 它的每张发票都有一行,并且所有相关付款都有可折叠的嵌套行(请参见下图) 我的问题是,在我的树枝模板中,如果其中的任何付款未获批准,我需要能够
4回复

Doctrine实体管理器通过空数组集合查找

我有一个名为 Cycle 的实体,它与 CycleActeur 有一个 OneToMany 关联(参见下面的代码)。 我希望能够在没有关联 CycleActeur 对象的情况下获取数据库中的所有 Cycle 对象,使用我的控制器中的一个简单的学说 findBy* 方法。 也就是说: 有没有办法做到这
1回复

简单的Doctrine查询构建器

我是 Symfony 和 Doctrine 的新手。 无法理解如何编写 queryBuilder。 在纯 SQL 中,两者之一: 我从 ClientRepository 尝试了以下内容: 看不到 score.result 数据。 Relation Client<=>Score is O
4回复

如何更新doctrine中的字段以将其设置为null

我想将null设置为doctrine中的一个字段,这里是句子 我认为这段代码应该可以完成这项工作,但是我得到了这个例外 执行'UPDATE example SET deleted_at =?时发生异常? WHERE(id IN(?))AND(example.deleted_at IS
2回复

按相关文章计数排序标签实体

我想获取标签及其相关文章。 但是,目标是按相关文章的数量对其进行排序。 如何使用QueryBuilder和存储库类来实现? 我是symfony的新手,我曾尝试通过DQL来获取标签,但并未获取整个实体。 标签和文章在@ManyToMany关系中: 我在TagRepository中使用
5回复

如何在Symfony2中进行LIKE数据库查询

这应该很简单,但我找不到一个有效的例子。 这是一个控制器方法,它抛出错误“无效的参数号:绑定变量的数量与令牌的数量不匹配”。 我成功发布了“searchterm”变量,但无法使查询生效。 缺什么? 谢谢!
1回复

Doctrine2:[语义错误]如果不选择至少一个根实体别名,则无法通过标识变量选择实体

这是我对查询构建器的查询,它完美地工作,带来了用户表和模块表的所有结果,它们具有多对多的关联: 但是,当我尝试从用户中选择这样的特定字段时: Doctrine抛出一个错误: 我想知道如何做到这一点,从实体而不是所有字段中选择特定字段。
1回复

doctrine查询构建器从不是实体表的表中选择

我正在努力找到一种方法来使用查询构建器从表中选择数据,该表不是某个实体的表。 method - > from()仅将类名(实体名称)作为参数。 就像是: 我还需要将实体表连接到另一个表。 有办法吗?