Symfony 3.4 фильтр GET параметры - PullRequest
       12

Symfony 3.4 фильтр GET параметры

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

Я хотел бы получить данные с параметрами, отправленными запросом GET (в URL) в контроллере Symfony.У меня есть сущность, которая выглядит примерно так:

class User 
{
  /**
   *  string
   */
  private $id;

  /**
   *  string
   */
  private $lastname;

  /**
   *  string
   */
  private $firstname;

  /**
   *  array of object country
   */
  private $country;
}

И контроллер, который выглядит примерно так:

public function getUsersAction(Request $request, ParamFetcher $paramFetcher)
{
  $qb = $this->get('doctrine.orm.entity_manager')->createQueryBuilder();
  $and = $qb->expr()->andx();

  if ($lastname = $paramFetcher->get('lastname')) 
        $and->add($qb->expr()->eq('entity.lastname', $lastname));
// I  Have every QueryParam set up in my code but useless here I think.
  if ($firstname = $paramFetcher->get('firstname'))
        $and->add($qb->expr()->eq('entity.firstname', $firstname));
  if ($countries = $paramFetcher->get('countries'))
        $and->add($qb->expr()->eq('country.id', $countries));

  $qb->select('entity')->from($this->entity, 'entity');

  if ($countries)
        $qb->innerJoin('entity.countries','country');

  if ($lastname|| $firstname|| $countries)
        $qb->where($and);

  return $qb->getQuery()->getResult();
}

Это уродливо, но работает.Тем не менее, есть одна проблема, если я хочу отправить много стран для фильтрации, я не могу.

Итак, вот мой запрос: как я могу получить массив из URL-адреса и отфильтровать их в доктрине?Или лучше, есть ли кто-нибудь, кто может сделать это для меня самым простым способом?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...