Symfony2 / Doctrine: findBy несколько запросов, которые могут быть NULL

У меня есть несколько URL-запросов, например:

/page?type=train&category=others&location=germany

/page?type=car&category=others

Я выбираю их и помещаю в переменные, по которым хочу фильтровать запросы к базе данных.

Вот что я попробовал:

$item = $this->getDoctrine()
->getRepository('AppBundle:Item')
->findBy(array(
'type' => $type,
'category' => $category,
'location' => $location
));

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

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

Спасибо за вашу помощь! 🙂

1

Решение

Имейте в виду, что вам не нужно создавать findBy-Criteria внутри построителя запросов. Вместо этого вы могли бы создать его прямо раньше с помощью PHP array_filter(), который удалит все нулевые значения:

$criteria = array_filter(array(
'type' => 'search_type',
'category' => null,
'location' => 'search_location'
));

$item = $this->getDoctrine()
->getRepository('AppBundle:Item')
->findBy($criteria);
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]