【问题标题】:How to query NOT NULL with Doctrine 2?如何使用 Doctrine 2 查询 NOT NULL?
【发布时间】:2017-07-08 14:05:09
【问题描述】:

我的问题与asked before 完全相同,但最后一个问题是 6 年的历史,并且存在新的 Doctrine 版本,所以我现在参考最新版本的 Doctrine 来问这个问题。

我有表测试:

测试:

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 语法?

【问题讨论】:

    标签: php doctrine-orm


    【解决方案1】:

    你也可以像这样使用QueryBuilder,

    $query=$this->dm->createQueryBuilder('AppBundle:DocumentName')
                 ->field('fieldName')->notEqual(null);
    

    $data=$query->getQuery()->execute();

    【讨论】:

      【解决方案2】:

      没有像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.html 以获取所有查询构建器方法的参考,包括可通过 $qb->expr() 访问的方法。

      【讨论】:

        猜你喜欢
        • 2011-11-10
        • 1970-01-01
        • 2012-09-24
        • 2019-06-16
        • 2018-09-12
        • 2022-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多