I have exactly the same question as asked before, but the last question is 6 years old and new Doctrine versions exist, so I am now asking this in reference to the latest version of Doctrine.
I have table Test:
Test:
id | name 
1  | aaa
2  | 
3  | ccc
4  | aaa
5  | 
6  | ddd
I want result where name is NOT NULL:
aaa
ccc
aaa
ddd
This syntax doesn't work:
$em->getRepository('Test')->findBy(array('name' => notnull));
Is there something similar that will work using the findBy syntax?
There is no shortcut method like findBy, but you can use the query builder:
$qb = $em->createQueryBuilder(); // $em is your entity manager
$result = $qb->select("t")
    ->from("Test t")
    ->where($qb->expr()->isNotNull("t.name"))
    ->getQuery()->getResult();
This will give you all entities where name is not NULL.
See http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html for a reference of all query builder methods, including the ones accessible through $qb->expr().
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With