KubiRoazhon
KubiRoazhon

Reputation: 1839

Converting a MySQL query to Symfony doctrine

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

Answers (1)

Iwan Wijaya
Iwan Wijaya

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

Related Questions