Symfony findBy 字段名
Symfony findBy field name
我有一个关联 Region
ToMany Places
。
在 PlacesRepository.php
我有这个代码:
$allPlacesArray = [];
foreach ($placeTypes as $placeType){
if($placeType == 'all'){
$allPlacesArray = $this->findAll();
}
$allPlacesArray = array_merge($allPlacesArray, $this->findBy(['region' => 2]));
}
return $allPlacesArray;
}
现在它通过 id
字段搜索区域中的地点。
我想要的是从区域实体中按字段 name
搜索区域中的地点,因为我从客户端收到区域的 name
而不是 id
。我不明白也找不到我该怎么做。我已经试过了 $this->findBy(['region.name' => 'Республика Крым']
,但不是这样。
万一有人需要这个问题的答案。
在存储库中:
public function findAllPlacesInRegion() {
$queryBuilder = $this->createQueryBuilder('p')
->leftJoin('p.region', 'r')
->where('r.name like :region_name' )
->setParameter('region_name', 'Республика Крым');
return $queryBuilder->getQuery()->getResult();
}
我有一个关联 Region
ToMany Places
。
在 PlacesRepository.php
我有这个代码:
$allPlacesArray = [];
foreach ($placeTypes as $placeType){
if($placeType == 'all'){
$allPlacesArray = $this->findAll();
}
$allPlacesArray = array_merge($allPlacesArray, $this->findBy(['region' => 2]));
}
return $allPlacesArray;
}
现在它通过 id
字段搜索区域中的地点。
我想要的是从区域实体中按字段 name
搜索区域中的地点,因为我从客户端收到区域的 name
而不是 id
。我不明白也找不到我该怎么做。我已经试过了 $this->findBy(['region.name' => 'Республика Крым']
,但不是这样。
万一有人需要这个问题的答案。 在存储库中:
public function findAllPlacesInRegion() {
$queryBuilder = $this->createQueryBuilder('p')
->leftJoin('p.region', 'r')
->where('r.name like :region_name' )
->setParameter('region_name', 'Республика Крым');
return $queryBuilder->getQuery()->getResult();
}