Doctrine2 - 继承映射,查询子类

Cap*_*ppY 7 mapping orm inheritance doctrine dql

我已经加入了表继承(让我们称之为Action),我需要获取满足条件的所有Action记录,但字段是否在子类中?有没有办法在不编写Native Query的情况下访问子类字段,但是使用DQL?(或queryBuilder)?

Bro*_*cha 0

如果您有子类,您可以直接查询该子类。父类的属性会自动继承(废话)。我相信这就是您正在寻找的(基于我实现类表继承的方式)。

class User{
  private $id;
  private $username;
}

class Merchant extends User{
  private $bizname;
  private $isActive;
}
Run Code Online (Sandbox Code Playgroud)

现在,根据您的说法,如果我必须获得活跃的商家,我会执行以下操作,这对我有用:

$qb->select('m.bizname')
   ->from('Merchant','m')
   ->where('m.isActive = :flag')
   ->setParameter('flag',TRUE);
Run Code Online (Sandbox Code Playgroud)

  • 是的,这是可行的,但我想要 ->from('User','u')->andWhere('userSubClass.isActive :flag'),这就是问题所在。 (2认同)