Symfony 在子表中返回空记录的条令注释

Symfony 在子表中返回空记录的条令注释,symfony,annotations,doctrine,Symfony,Annotations,Doctrine,我想通过使用doctrine注释返回所有子记录和那些具有空外键值的记录。 这是用户实体: .... /** * @ORM\OneToMany(targetEntity="AppBundle\Entity\DeliveryMethods", mappedBy="owner") */ private $delivery_methods; .... 下面是交付方法实体(带子行的表): 我需要在注释中做什么更改 谢谢您可以编写一个新的存储库类并添加如下内容: cl

我想通过使用doctrine注释返回所有子记录和那些具有空外键值的记录。 这是用户实体:

....
    /**
     * @ORM\OneToMany(targetEntity="AppBundle\Entity\DeliveryMethods", mappedBy="owner")
     */
    private $delivery_methods;

....
下面是交付方法实体(带子行的表):

我需要在注释中做什么更改


谢谢

您可以编写一个新的
存储库
类并添加如下内容:

class DeliveryMethodsRepository extends EntityRepository {

    /**
     * 
     * @param type $owner
     * @return type
     */
    public function getOwnerAssociatedOrOrphanEntities($ownerId) {

        $qb = $this->createQueryBuilder("dm")
            ->andWhere("dm.owner = :owner OR dm.owner = NULL")
            ->setParameter("owner", $ownerId);

        return $qb->getQuery()->execute();
    }
}
并从
Controller
DeliveryMethod
存储库调用此方法

请注意:您还可以在任何控制器方法内编写自定义
查询生成器


希望有帮助

如果一个delivery\u方法的owner=null,那么它不会绑定到任何所有者。。。因此,没有一个拥有空子级的所有者。我知道并且我想返回所有
owner\u id=null
记录和其他结果,我的意思是类似
owner\u id=x或owner\u id=null
,而
x
是一个
用户id
。注释旨在返回相关实体。没有别的。为此,您必须编写一个自定义存储库方法。我是否应该重写所有连接?除了这个,还有其他的默认关系(连接)吗?我只更改了这个?是的,最后我不得不使用类似的东西。谢谢
class DeliveryMethodsRepository extends EntityRepository {

    /**
     * 
     * @param type $owner
     * @return type
     */
    public function getOwnerAssociatedOrOrphanEntities($ownerId) {

        $qb = $this->createQueryBuilder("dm")
            ->andWhere("dm.owner = :owner OR dm.owner = NULL")
            ->setParameter("owner", $ownerId);

        return $qb->getQuery()->execute();
    }
}