0

私はこのエンティティを持っています

役職

 /**
 * @ORM\ManyToOne(targetEntity="SottoCategoria")
 * @ORM\JoinColumn(name="sottocategoria_id", referencedColumnName="id", nullable=false)
 */
public $sottocategoria;

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->sottocategoria->categoriaなので、私の質問は、categoriaからすべての投稿を取得する方法です。私はinnerjoinを使用する必要がありますか?

4

1 に答える 1

0

$em = $this->getDoctrine()->getEntityManager(); $query = $em->createQuery( 'SELECT p,g,c FROM AcmeBlogBu​​ndle:Post p JOIN p.sottocategoria g JOIN g.categoria c WHERE p.enabled = :enabled AND g.categoria = :categoria ORDER BY p.id DESC')

解決した

于 2013-01-14T22:51:10.297 に答える