我的问题与以前的问题完全相同,但是最后一个问题已有6年的历史,并且存在新的学说版本,因此我现在提到最新版本的学说。
我有表测试:
测试:
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/query-builder.html,以参考所有查询构建器方法,包括可通过$qb->expr()
访问的<<<<<<<<<<<<<<<<<<<<<<<</p>
您也可以使用QueryBuilder,例如
$query=$this->dm->createQueryBuilder('AppBundle:DocumentName')
->field('fieldName')->notEqual(null);
$ data = $ query-> getquery() -> execute();