Symfony 创建具有2个关联的查询

Symfony 创建具有2个关联的查询,symfony,doctrine,query-builder,Symfony,Doctrine,Query Builder,我有这个实体 职位 SottoCategoria /** * @ORM\ManyToOne(targetEntity="Categoria") * @ORM\JoinColumn(name="categoria_id", referencedColumnName="id", nullable=false) */ public $categoria; 范畴 /** * @ORM\OneToMany(targetEntity="SottoCategoria", mappedBy="cat

我有这个实体

职位

SottoCategoria

 /**
 * @ORM\ManyToOne(targetEntity="Categoria")
 * @ORM\JoinColumn(name="categoria_id", referencedColumnName="id", nullable=false)
 */
public $categoria;
范畴

/**
 * @ORM\OneToMany(targetEntity="SottoCategoria", mappedBy="categoria")
 */
protected $sottocategorie;
我如何进行此查询?我需要从categoria找到所有的帖子

post.sottocategoria.categoria

 $query = $repository->createQueryBuilder('p')
                    ->where('p.enabled = :enabled AND p.sottocategoria.categoria = :categoria')
                    ->setParameters(array(
                        'enabled' => true,
                        'categoria' => $idCat,
                    ))
我不能使用p.categoria,因为我与post没有关系

我的关系是post->sottocategoria->categoria 所以我的问题是如何从categoria获得所有帖子?我必须使用innerjoin?

$em=$this->getDoctrine()->getEntityManager(); $query=$em->createQuery( '从AcmeBlogBundle:Post p JOIN p.sottocategoria g JOIN g.categoria c中选择p、g、c,其中p.enabled=:enabled和g.categoria=:categoria ORDER BY p.id DESC')

解决

 $query = $repository->createQueryBuilder('p')
                    ->where('p.enabled = :enabled AND p.sottocategoria.categoria = :categoria')
                    ->setParameters(array(
                        'enabled' => true,
                        'categoria' => $idCat,
                    ))