Сырое учение Symfony - PullRequest
       8

Сырое учение Symfony

0 голосов
/ 06 сентября 2018

Я использую Symfony 4.1, и мне нужно объединить таблицу с "сложным" условием:

$query = $this->createQueryBuilder('r')
    ->select('r, d.latitude, d.longitude')
    ->join('App\Entity\Departement', 'd', 'WITH',
        'IF (LEFT(r.postal, 2) < \'96\', LEFT(r.postal, 2), LEFT(r.postal, 3)) = d.code')

Я получил ошибку:

Ожидаемая известная функция, получила 'IF'

Как использовать необработанный запрос в условии соединения?

EDIT

Хорошо, IF не определен в DQL ... Поэтому я использую:

->join('App\Entity\TblDepartement', 'd', 'WITH',
   'CASE WHEN (SUBSTRING(r.postal, 0, 2) < \'96\') 
         THEN SUBSTRING(r.postal, 0, 2) 
         ELSE SUBSTRING(r.postal, 0, 3) END AS postal')

Но postal всегда пуст, есть идеи?

...