Laravel集合搜索不区分大小写

时间:2017-07-05 09:54:04

标签: php laravel

我正在搜索一个集合,我希望这个搜索大小写不敏感,或者至少以小写形式更改集合值。我怎么能这样做?

$value = strtolower($value);
$collection = $collection->where($attribute, $value);

$ value是小写,而集合中的内容不是,所以没有匹配。

2 个答案:

答案 0 :(得分:8)

您可以使用filter()方法和回调来执行您想要的操作:

$collection = $collection->filter(function ($item) use ($attribute, $value) {
    return strtolower($item[$attribute]) == strtolower($value);
});

答案 1 :(得分:0)

您可以映射集合并为每个项目小写属性:

$value = strtolower($value);
$collection = $collection
    ->map(function ($item) use ($attribute) {
        $item->{$attribute} = strtolower($item->{$attribute});

        return $item;
    })
    ->where($attribute, $value);