我有 2 个实体Federation
和Pays
,实体Federation
有一个属性ManyToOne
:
/**
* @ORMManyToOne(targetEntity="StageAdminBundleEntityPays")
*/
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 并且没有显示任何行,但是当我根据实体的另一个属性进行搜索时,会显示结果并且没有错误.
我只想知道是否有我没有注意到的错误。
你的错误在这里'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();