我想忽略过滤器中的大小写,我的代码:
if (strtolower(isset($filterObject['name'])) && null !== strtolower(($filterObject['name']))) {
$queryFilter->addStringFilter("name", ($filterObject['name']));
}
答案 0 :(得分:1)
如果要通过小写对象来忽略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'])))