Laravel 5.3,empty() 在查询中将零值视为空

问题描述 投票:0回答:1

在我的 laravel 项目(版本 5.3)中,我在 URL 中发送参数:

&container=0

但是当它进入创建 SQL 查询的 PHP 函数时,它将零视为空并满足此行的空字符串部分:

        $containerCL     = empty($container)      ? '' : "AND SHPTABLE.CNT IN (".implode(',',$container).")";

如果没有为此选择任何选项,我确实想将一个空字符串发送到查询中,但在这种情况下,我需要发送零值,因为我们有一些由实际值标识的记录。我怎样才能让它捕获空参数,但仍然使用零作为查询的实际值?

php laravel laravel-5
1个回答
0
投票

您可以使用

isset()
功能代替
empty()
。如果变量未设置或为
isset()
,则
false
函数将返回
null
。但是,对于设置为
true
的变量,它将返回
0
,因为
0
是有效的非空值。

$containerCL = !isset($container) ? '' : "AND SHPTABLE.CNT IN (".implode(',',$container).")";
© www.soinside.com 2019 - 2024. All rights reserved.