我有一个返回公司详细信息的查询,但是如果用于左连接的字段为空,查询返回错误。如何解决这个问题?
我试过了,
->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 的公司。字段 field1 和 field2 不是从前端添加的必填字段。
最佳答案
LeftJoin
接受空值。
$queryBuilder
->leftJoin('company.field1', 'field1')
->leftJoin('company.field2', 'field2')
->where('company.field1 is null')
->andWhere('company.field2 is null');
这将返回 field1 和 field2 仅为空的所有公司。
(这两个字段必须为空才能返回)。
(也许您应该尝试使用 =
而不是关键字 is
)
关于php - 当左连接字段为空时后端返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56033928/