如何在 Symfony4 中搜索 Max 和 Min? [已关闭]

问题描述 投票:0回答:1

我有两个用于搜索的字段,分别是:

  • Min
    这是最低价格
  • Maximum
    这是最高价格

在这里,我想显示所有介于最低价格和最高价格之间的产品。

帮助我,我是 Symfony 新手。

这是我的网站

The website

如何过滤?

symfony symfony4
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。这是一种更复杂的方式,我会按需解释。
© www.soinside.com 2019 - 2024. All rights reserved.