我有2个实体Federation
和Pays
,实体Federation
有一个属性ManyToOne
:
/**
* @ORM\ManyToOne(targetEntity="Stage\AdminBundle\Entity\Pays")
*/
public $nomPays;
我想使用QueryBuilder
构建一个查询,以根据使用该属性$nomPays
的搜索获取所有行。
我试过了:
$repository = $this->getDoctrine()->getRepository(Federation::class);
$query = $repository->createQueryBuilder('f')
->leftJoin('StageAdminBundle:Pays', 'fc', 'f.id = fc.id')
->Where('f.nomPays = :value')
->setParameter('value', '%'.$term.'%')
->orderBy('f.nom', 'ASC')
->getQuery();
$federations = $query->getResult();
问题是结果为0且没有显示行,但是当我根据实体的另一个属性进行搜索时,结果显示出来并且没有错误。
我只是想知道是否有什么不对,我没注意到。
答案 0 :(得分:0)
你错了'f.id = fc.id'
:
$repository = $this->getDoctrine()
->getRepository(Federation::class);
$query = $repository->createQueryBuilder('f')
->leftJoin('StageAdminBundle:Pays', 'fc', 'f.nomPays = fc.id')
->where('f.nomPays = :value')
->setParameter('value', '%'.$term.'%')
->orderBy('f.nom', 'ASC')
->getQuery();
$federations = $query->getResult();