Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过like筛选laravel中的集合_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php 如何通过like筛选laravel中的集合

Php 如何通过like筛选laravel中的集合,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我想按名称筛选集合,如laravel中的“%something%”,但在集合中like不起作用 我如何解决这个问题? 我编写了这个方法,但不适用于名称过滤器 protected function filterData(Collection $collection, $transformer) { foreach (request()->query() as $query => $value) { $attribute = $transformer::origi

我想按名称筛选集合,如laravel中的“%something%”,但在集合中like不起作用 我如何解决这个问题? 我编写了这个方法,但不适用于名称过滤器

protected function filterData(Collection $collection, $transformer)
{
    foreach (request()->query() as $query => $value) {
        $attribute = $transformer::originalAttribute($query);
        if (isset($attribute, $value)) {
            if ($attribute == 'name') {
                $collection = $collection->where($attribute,'LIKE' ,"%$value%"); // problem is here
            }
            $collection = $collection->where($attribute, $value);
        }
    }
    return $collection;
}
换成这个


$collection=$collection->where($attribute,'LIKE',“%.”$value.“%”);//问题就在这里

您可以像这样过滤您的收藏:

$collection = $collection->filter(function ($item) use ($attribute) {
            return strpos($item->name, $attribute) !== false;
        });
如果您在尝试获取非对象的属性“name”时遇到错误,请将
$item->name
更改为
$item['name']

类似的内容?