确定目标实体是否是Doctrine过滤器中的外键

时间:2016-12-16 21:22:36

标签: doctrine-orm

Doctrine将$targetEntity$targetTableAlias传递给过滤器约束,如下所示:

public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
{ ...

在构建查询时,似乎所有实体都会通过过滤器。有没有办法确定$targetEntity是否是外键?我想编写一个适用于" primary"实体(Doctrine称之为" base"表)但不是外键。

1 个答案:

答案 0 :(得分:1)

您的问题不是很明确,我不确定这是否会回答您的问题,但在the Doctrine 2 documentation chapter 30. Filters中您可以阅读以下内容:

  

在连接或单表继承的情况下,总是传递继承根的ClassMetadata。这对于避免在应用过滤器时会破坏SQL的边缘情况是必要的。

所以我会说$targetEntity始终是根实体(所以永远不是外键)。

如果这不能解答您的问题,我想请您更具体地说明您想要做什么或想要了解什么。