Symfony 4中的克里特岛自定义查询,我使用createQueryBuilder()
。 我的实体有列price_ranges type type="json_array"
我存储在此列中的此数据
{
"from": "10.10.2010",
"to": "10.20.2010",
"pricePerNight": 100,
"minStay": 7
}
希望按price_ranges
列中的pricePerNight
键查询数据。
我创建了函数,但出现以下错误:
[Semantical Error] line 0, col 41 near 'price_ranges': Error: Class AppEntityHouse has no field or association named price_ranges
这是我的函数。我错在哪里?
public function findDataByPriceRange()
{
$qb = $this->createQueryBuilder('u');
$qb->select('u')
->where('u.price_ranges LIKE :price_ranges')
->setParameter('pricePerNight', 100);
return $qb->getQuery()->getResult();
}
编辑函数后:
public function findVillasByPriceRange()
{
$qb = $this->createQueryBuilder('u');
$qb->select('u')
->where('u.priceRanges LIKE :priceRanges')
->setParameter('pricePerNight', 100);
return $qb->getQuery()->getResult();
}
我收到此错误:
Invalid parameter: token pricePerNight is not defined in the query.
您需要在where()
中使用相同的参数名称,并像这样setParameter()
->where('u.priceRanges LIKE :parameterName')
->setParameter('parameterName', 100);