-1

我有两个搜索字段,即最小值和最大值。

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

帮助我,我是 Symfony 的新手。

在此处输入图像描述

4

1 回答 1

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 Forms。这是一种更复杂的方式,我将按需解释。
于 2019-02-28T12:26:43.220 回答