Backend возвращает ошибку, когда левые поля соединения пусты - PullRequest
1 голос
/ 08 мая 2019

У меня есть запрос на возврат информации о компании, но если поле, используемое для левого соединения, пусто, запрос возвращает ошибку. Как решить эту проблему?

Я пытался,

->leftJoin('company.field1', 'field1')
->leftJoin('company.field2', 'field2')
->andWhere('company.field1!= :empty')->setParameter('empty', serialize([]))
        ->andWhere('company.field2!= :empty')->setParameter('empty', 
serialize([]));

Это вернет все компании только с непустыми полями field1 и field2. Но я хочу, чтобы все компании с пустыми / непустыми field1 и field2.This поля field1 и field2 не являются обязательными полями для добавления из внешнего интерфейса.

1 Ответ

1 голос
/ 18 мая 2019

LeftJoin принять нулевые значения.

$queryBuilder
  ->leftJoin('company.field1', 'field1')
  ->leftJoin('company.field2', 'field2')
  ->where('company.field1 is null')
  ->andWhere('company.field2 is null');

Это вернет все компании, где field1 и field2 только пустые.(Два поля должны быть пустыми, чтобы быть возвращенными). (Возможно, вам следует попробовать = вместо ключевого слова is)

...