Symfony原则原始加入条件

时间:2018-09-06 08:56:17

标签: symfony doctrine

我使用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'

如何在联接条件中使用原始查询?

编辑

好的,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始终是空的,知道吗?

0 个答案:

没有答案