2017-02-19 82 views
0

我和asked before有完全相同的問題,但最後一個問題是6歲,並且新的Doctrine版本存在,所以我現在要求參考最新版本的Doctrine。如何使用Doctrine 2查詢NOT NULL?

我有表測試:

測試:

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

我想要的結果,其中名稱爲NOT NULL:

aaa 
ccc 
aaa 
ddd 

這句法不起作用:

$em->getRepository('Test')->findBy(array('name' => notnull)); 

有什麼sim我會使用findBy語法工作嗎?

回答

1

有沒有像findBy沒有捷徑的方法,但你可以使用查詢生成器:

$qb = $em->createQueryBuilder(); // $em is your entity manager 
$result = $qb->select("t") 
    ->from("Test t") 
    ->where($qb->expr()->isNotNull("t.name")) 
    ->getQuery()->getResult(); 

這會給你的所有實體,其中nameNULL

請參閱http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html以瞭解所有查詢構建器方法的參考,包括可通過$qb->expr()訪問的方法。