我有两个用于搜索的字段,分别是:
Min
这是最低价格Maximum
这是最高价格在这里,我想显示所有介于最低价格和最高价格之间的产品。
帮助我,我是 Symfony 新手。
这是我的网站
如何过滤?
有两种选择:
简单。
<form>
<input name="min" value="{{ min }}">
<input name="max" value="{{ max }}">
<input type="submit" value="Search">
</form>
public function listPhones(Request $request, EntityManagerInterface $em)
{
// get submitted values
$min = $request->get('min');
$min = $request->get('min');
$phones = $em->getRepository(Phone::class)->search($min, $max);
return ['phones' => $phones, 'min' => $min, 'max' => $max]
}
class PhoneRepository extends EntityRepository
{
public function search($min = null, $max = null)
{
$qb = $this->createQueryBuilder('p');
if (!is_null($min)) {
$qb->andWhere('p.price >= :min')
->setParameter('min', $min);
}
if (!is_null($max)) {
$qb->andWhere('p.price <= :max')
->setParameter('max', $max);
}
return $qb->getQuery()->getResult();
}
}