Преобразование MySQL-запроса в доктрину Symfony - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть MySQL запрос, который я хочу преобразовать в запрос, понятный Doctrine.

SELECT name from users where project = 10 and (classification = 12 
or classification is null)

Итак, я попытался преобразовать это в Учение, но оно не работает.

$query->AndWhere('users.classification = :classification');
$query->setParameter(':classification', $classification);
$query->orWhere('users.classification = :classification');
$query->setParameter(':classification', null);

Я пытался использовать выражение $query->expr() Мне не удалось

1 Ответ

0 голосов
/ 05 декабря 2018

Для группировки нескольких выражений в скобках вы можете использовать orx и andx

$queryBuilder->andWhere($queryBuilder->expr()->orX(
    'users.classification = :classification',
    'users.classification IS NULL'
))
->setParameter(':classification', $classification);

Или с выражением доктрины:

$queryBuilder->andWhere($queryBuilder->expr()->orX(
    $queryBuilder->expr()->eq('user.classification', ':classification'),
    $queryBuilder->expr()->isNull('users.classification')
))
->setParameter(':classification', $classification);

Документы доктрины: https://www.doctrine -project.org / проектов / доктрина-ОРМ / о / 2,6 / ссылка / запрос-builder.html #-выраж-класс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...