Reputation: 1839
I have this MySQL
query that I want to convert to a query understood by Doctrine.
SELECT name from users where project = 10 and (classification = 12
or classification is null)
So I've tried to convert that in Doctrine but it is not working.
$query->AndWhere('users.classification = :classification');
$query->setParameter(':classification', $classification);
$query->orWhere('users.classification = :classification');
$query->setParameter(':classification', null);
I've tried to use the expression $query->expr()
I did not succeed
Upvotes: 1
Views: 282
Reputation: 2157
To group multiple where statements in parentheses you can use orx
and andx
$queryBuilder->andWhere($queryBuilder->expr()->orX(
'users.classification = :classification',
'users.classification IS NULL'
))
->setParameter(':classification', $classification);
Or with doctrine expression:
$queryBuilder->andWhere($queryBuilder->expr()->orX(
$queryBuilder->expr()->eq('user.classification', ':classification'),
$queryBuilder->expr()->isNull('users.classification')
))
->setParameter(':classification', $classification);
Doctrine docs: https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/query-builder.html#the-expr-class
Upvotes: 2