我将 FormType 用于我的实体,并设置了entity field
我需要在Where中使用两个And子句,从我在the Query Builder page上阅读的内容来看,至少这是我应该做的事情:

'query_builder' => function ($er){
    $qb = $er->createQueryBuilder('p');
    $qb
        ->where($qb->expr()->andx(
            $qb->expr()->in('p', '?1'),
            $qb->expr()->not(
                $qb->expr()->eq('p.location', 'NULL')
            )
        ))
        ->setParameter(1, $this->totalScope)
    ;
    return $qb;
},

但是,not(eq('col', 'NULL'))达不到预期的结果,实际上,存在以下错误:

最佳答案

您可以使用 isNotNull :

'query_builder' => function ($er){
    $qb = $er->createQueryBuilder('p');
    $qb
        ->where($qb->expr()->andx(
            $qb->expr()->in('p', '?1'),
            $qb->expr()->isNotNull('p.location')
        ))
        ->setParameter(1, $this->totalScope);

    return $qb;
},

关于symfony - Symfony2学说Expr 'IS NOT NULL',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15773662/

10-10 15:05