Doctrine preLoad Listener在执行之前操纵QueryBuilder

时间:2015-11-02 19:29:46

标签: doctrine-orm doctrine

在将查询发送到数据库之前,有没有办法操纵Doctrine 2.6 QueryBuilder(DQL)?

因此,例如,如果我们总是希望关联两个实体(没有延迟加载),那么我们需要加入另一个实体的表(为了效率)。因此,如果我们可以检查其他实体是否已加入,那将会很棒,如果没有,则自动加入。

但是,学说没有preLoad listener ......

1 个答案:

答案 0 :(得分:1)

您可以通过另一种方式实现目标。您可以设置eager模式以在注释中获取实体:

/**
 * @ORM\ManyToOne(..., fetch="EAGER")
 */

你需要什么preLoad听众?

如果您只想在执行之前修改每个生成的SQL,可以使用SQL Filters