Как запросить NOT NULL с помощью Doctrine?

У меня есть таблица Test:

Test:
id | name 
1  | aaa
2  | 
3  | ccc
4  | aaa
5  | 
6  | ddd

Я хочу результат, где имя НЕ NULL:

aaa
ccc
aaa
ddd

Как я могу получить с:

Doctrine_Core::getTable('Test')->findBy('name', NOTNULL??) <-doesnt working

и в модели с:

$this->createQuery('u')
     ->where('name = ?', NOTNULL ???) <- doesnt working
     ->execute();

person Michael Fidy    schedule 05.09.2011    source источник


Ответы (2)


Попробуй это:

$this->createQuery('u')
     ->where('name IS NOT NULL')
     ->execute();

который является стандартным синтаксисом SQL. Doctrine не преобразует значения Null в правильный sql.

person Dziamid    schedule 05.09.2011
comment
Вы не можете, вам нужно будет написать свои собственные методы. - person Dziamid; 05.09.2011

Сделайте это способом Doctrine, из построителя запросов и класса Expr.

 $qb = $entityManager->createQueryBuilder();
 $result = $qb->select('t')
        ->from('Test','t')
        ->where($qb->expr()->isNotNull('t.name'))
        ->groupBy('t.name')
        ->getQuery()
        ->getResult();

есть также функция Different().

person Oshan Wisumperuma    schedule 09.10.2015