如何在Symfony4中查询最大和最小?

时间:2019-02-28 11:49:31

标签: symfony symfony4 symfony-4.2

我有两个用于搜索的字段,即“最小”和“最大”。

在这里,我要显示介于最小和最大之间的所有产品。

帮我,我是Symfony的新手。

enter image description here

1 个答案:

答案 0 :(得分:1)

有两种选择:

  1. 简单。

    • 在模板中创建普通的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();
    }
}
  1. 使用Symfony表单的Symfony方式。这是一种更复杂的方法,我将按需解释。