フィルターで大文字と小文字を区別したくない、私のコード:
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'])));
}
ところで、チェックしなかった1つのケースは、 $filterObject['name'] が空であるかどうかです(残りのコードがわからないため、可能かどうかはわかりません。可能な場合は、別のものを追加してifに追加します:
&& $filterObject['name']
これにより、空の文字列以上で満たされることが保証されます。したがって、if 部分は次のように変更されます。
if (isset($filterObject['name']) && $filterObject['name'] && null !== strtolower(($filterObject['name'])))