У меня точно такой же вопрос, как спросил раньше, но последнему вопросу уже 6 лет, и существуют новые версии Учения, поэтому я сейчас задаю этот вопрос со ссылкой на последнюю версию Учения.
У меня есть таблица Test:
Тестовое задание:
id | name
1 | aaa
2 |
3 | ccc
4 | aaa
5 |
6 | ddd
Я хочу результат, где имя НЕ NULL:
aaa
ccc
aaa
ddd
Этот синтаксис не работает:
$em->getRepository('Test')->findBy(array('name' => notnull));
Есть ли что-то подобное, что будет работать с использованием синтаксиса findBy?
Там нет быстрого метода, как findBy
, но вы можете использовать построитель запросов:
$qb = $em->createQueryBuilder(); // $em is your entity manager
$result = $qb->select("t")
->from("Test t")
->where($qb->expr()->isNotNull("t.name"))
->getQuery()->getResult();
Это даст вам все сущности, где name
не является NULL
,
Увидеть http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html для справки всех методов построителя запросов, в том числе доступных через $qb->expr()
,
Других решений пока нет …