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