Я создаю приложение Symfony, где пользователь может выполнить поиск по форме поиска со многими полями. Теперь мой DQL запрос выглядит следующим образом:DQL Как вернуть все записи, когда параметр пуст
$users = $repository->createQueryBuilder('u')
->addSelect('u')
->from('AppBundle:User', 'b')
->where('u.Number = :Number **OR u.Number = :blank'**)
->andWhere('u.Code = :Code')
->setParameter('Number', $Number)
->setParameter('blank', $blank)
->setParameter('Code', $code)
->getQuery()
->getResult();
Проблема заключается в том, что я хочу, чтобы мой запрос, чтобы вернуть все записи, связанные с критериями, когда пользователь оставляет некоторые поля пустыми. Прямо сейчас никакие записи не возвращаются, потому что система думает, что мне нужны записи с конкретными «пустыми» критериями. Буду признателен за любые идеи. Спасибо
Это работает !! И в случае, если у меня нет 2 полей, как сейчас, но , скажем, 10 полей поиска, мне нужно записать 10 блоков if-else или даже 10 * 10 блоков, чтобы оправдать все возможные ситуации с помощью пользователя, правильно? Или, может быть, есть какое-то обходное решение для такой ситуации? Спасибо – Jack
Если у вас несколько полей, вы должны поместить их в массив, чтобы вы могли заменить строки выше на цикл 'foreach'. – Dric512
Хороший совет, спасибо. Можно ли увидеть какой-либо пример такой реализации? мне потребуется много времени, чтобы пройти через это))) – Jack