首页 > 解决方案 > 左连接字段为空时后端返回错误

问题描述

我有一个返回公司详细信息的查询,但是如果用于左连接的字段为空,则查询返回错误。如何解决这个问题?

我试过了,

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

这将只返回所有具有非空字段 1 和字段 2 的公司。但我希望所有具有空/非空字段 1 和字段 2 的公司。此字段字段 1 和字段 2 不是从前端添加的强制字段。

标签: phpmysqldoctrine-ormquery-builderapi-platform.com

解决方案


LeftJoin接受空值。

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

这将返回仅 field1 和 field2 为空的所有公司。(这两个字段必须为空才能返回)。 (也许您应该尝试使用=而不是关键字is


推荐阅读