选择在其中一个属性中具有/不具有某些字符串/正则表达式的元素的语法是什么?

时间:2016-06-16 09:31:29

标签: symfony doctrine query-builder

我正在尝试这样做:

$em->createQueryBuilder('u')
->select('u')
->// where  u.username doesnt contain the string "desactive" 

另外,我读了the querybuilder documentation,我想知道是否应该使用Expr类。 但是,这个课程的目的对我来说非常模糊,只有这样的解释:

  

要解决add()方法可能导致的一些问题,Doctrine创建了一个类,可以将其视为构建表达式的帮助器。这个类叫做Expr,它提供了一组有用的方法来帮助构建表达式:

莫尔沃尔,是我还是根本没有解释它的一些方法呢? (我说的是伪函数对象和函数对象的部分)

我完全错过了什么:(?

1 个答案:

答案 0 :(得分:1)

我没有测试,但你可以使用'notLike'

根据doctrine query builder documentation

编辑:'%desactive%' qb-> expr() - > literal('%desactive%')

$qb = $this->getEntityManager()->createQueryBuilder();

return $qb->add('select','u')
          ->from('YOURBUNDLE:YOURENTITY','u')
          ->where($qb->expr()->notLike('u.username', qb->expr()->literal('%desactive%'))
          ->getQuery()->getResult();