如何在 Symfony4 中搜索 Max 和 Min?
How to make a search query for Max and Min in Symfony4?
我有两个搜索字段,即最小值和最大值。
在这里,我想显示所有介于最小值和最大值之间的产品。
帮助我,我是 Symfony 的新手。
有两种选择:
简单。
- 在模板中创建普通 html 表单(您已经完成):
<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();
}
}
- Symfony 方式,使用 Symfony Forms。比较复杂的一种方式,我会按需说明。
我有两个搜索字段,即最小值和最大值。
在这里,我想显示所有介于最小值和最大值之间的产品。
帮助我,我是 Symfony 的新手。
有两种选择:
简单。
- 在模板中创建普通 html 表单(您已经完成):
<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();
}
}
- Symfony 方式,使用 Symfony Forms。比较复杂的一种方式,我会按需说明。