Symfony-来自json_array的学说createQueryBuilder

时间:2019-05-13 11:25:46

标签: symfony doctrine-orm doctrine

在Symfony 4中创建自定义查询,我使用createQueryBuilder()。 我的实体有price_ranges type type="json_array"

我存储在此列中的数据

{
    "from": "10.10.2010", 
    "to": "10.20.2010", 
    "pricePerNight": 100,
    "minStay": 7
}

想通过pricePerNight列中的price_ranges键来查询数据。

我创建了函数,但是出现以下错误:

[Semantical Error] line 0, col 41 near 'price_ranges': Error: Class App\Entity\House 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.

1 个答案:

答案 0 :(得分:2)

您需要在localhost/test?id=xxx&value=yyyy class test extends Component { func() { const params = queryString.parse(location.search); //here I get: {?id=xxx&value=yyyy} } } 中使用相同的参数名称

where()