我怎么写不等于教条where where子句?

And*_*nna 4 zend-framework doctrine-orm

我希望有人可以帮助我,我正在我的存储库中编写自定义查询,我想做以下事项: -

$query = $this->_em->createQueryBuilder()
->select('a')
->from('entity', 'a')
->where('a.deleted not 1') /// how do you write NOT??? i've tried <> etc 
->getQuery();
Run Code Online (Sandbox Code Playgroud)

我如何执行上述操作?

谢谢

安德鲁

Krz*_*ski 8

弗朗西斯科的回答是正确的.这完全取决于您使用表达式构建器或高级解决方案的意愿.

对于您的特定情况,您可以选择其中之一.

表达构建器:

$queryBuilder = $this->_em->createQueryBuilder();
$expr = $queryBuilder->expr();

$query = $queryBuilder
    ->select('a')
    ->from('entity', 'a')
    ->where($expr->neq('a.deleted', 1))
    ->getQuery();
Run Code Online (Sandbox Code Playgroud)

对于高级解决方案,请参阅Rawkode的答案.除改变!=<>或使用a.deleted = 0.

更好的是用Doctrine进行参数化

->where('a.deleted = :deleted')
->setParameter('deleted', false);
Run Code Online (Sandbox Code Playgroud)