Как сделать поисковый запрос для Max и Min в Symfony4? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть два поля для поиска, то есть минимальное и максимальное.

Здесь я хочу отобразить все продукты, которые находятся между минимальным и максимальным.

Помогите мне, яновичок в Symfony.

enter image description here

1 Ответ

0 голосов
/ 28 февраля 2019

Есть два варианта:

  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();
    }
}
Способ Symfony с использованием форм Symfony.Это более сложный способ, я объясню по требованию.
...