2011-09-05 21 views
11

Mam tabeli testowej:Jak zapytać NOT NULL z Doctrine?

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

chcę doprowadzić gdzie nazwa nie jest NULL:

aaa 
ccc 
aaa 
ddd 

Jak mogę dostać się z:

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

aw modelu z:

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

Odpowiedz

27

Wypróbuj:

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

co jest standardową składnią SQL. Doctrine nie konwertuje wartości Null do właściwego sql.

+3

dziękuję, i jak mogę tego użyć z Findby? –

+1

Nie możesz, musisz napisać własne niestandardowe metody. – Dziamid

2

Zrób to w sposób Doctrine, z konstruktora zapytań i klasy Expr.

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

Istnieją również różne funkcje().