запрос laravel с оператором case, в котором условие append IS NULL после условия - PullRequest
1 голос
/ 13 марта 2019
->where([
         'er.id_user_request_to' => $nIdUser
       ])
->where(DB::raw('case WHEN ge.id_user IS NOT NULL THEN ge.id_user = '.$nIdUser.' ELSE 0 END'))

пытался напечатать запрос, используя следующий код

$qry = vsprintf(str_replace(array('%', '?'), array('%%', '"%s"'), $oEvents->toSql()), $oEvents->getBindings());
dd($qry);

Это печатает запрос как

WHERE
(
    `er`.`id_user_request_to` = "6") 
    AND(
         CASE WHEN ge.id_user IS NOT NULL THEN ge.id_user = 6 ELSE 0 END
       )
) **IS NULL**

Не получается, откуда он добавляет IS NULL в конце запроса

1 Ответ

3 голосов
/ 13 марта 2019

Замените свою БД :: raw на whereRaw

->where([
     'er.id_user_request_to' => $nIdUser
   ])
->whereRaw(('case WHEN ge.id_user IS NOT NULL THEN ge.id_user = '.$nIdUser.' ELSE 0 END'))

Надеюсь, это поможет

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