我想忽略过滤器中的大小写,我的代码:
if (strtolower(isset($filterObject['name'])) && null !== strtolower(($filterObject['name']))) {
$queryFilter->addStringFilter("name", ($filterObject['name']));
}
如果你想通过小写对象来忽略 addStringFilter 的大小写敏感性,你只需要使用 strtolower($filterObject['name'])。strtolower 将给定的字符串小写。
在那张纸条上,您在 isset 函数结果上使用 strtolower,它不会在那里做任何事情(因为 isset 不返回任何字符串)。
因此,您应该将源代码更改为:
if (isset($filterObject['name']) && null !== strtolower(($filterObject['name'])))
{
$queryFilter->addStringFilter("name", strtolower(($filterObject['name'])));
}
顺便说一句,您没有检查的一种情况是 $filterObject['name'] 是否为空(不确定是否可能,因为我不知道您的剩余代码。如果可以,您想添加另一个并进入 if :
&& $filterObject['name']
这将确保它填充的不仅仅是一个空字符串。因此 if 部分将更改为:
if (isset($filterObject['name']) && $filterObject['name'] && null !== strtolower(($filterObject['name'])))