首页 > 解决方案 > Laravel 雄辩的使用循环

问题描述

我正在使用 eloquent 查询来过滤数据。我的查询是这样的,现在它工作得很好。

$users = User::where('username','LIKE','%'.request('username').'%')
            ->where('first_name','LIKE','%'.request('first_name').'%')
            ->where('last_name','LIKE','%'.request('last_name').'%')
            ->where('gender','LIKE','%'.request('gender').'%')
            ->where('password','LIKE','%'.request('password').'%')
            ->SimplePaginate(15);

我的请求数据是这样的。

在此处输入图像描述

但是,我需要为动态字段更新此查询。可以有不同的字段。我所做的是在关联数组中发送请求。所以,我的请求数据变成了这样,

在此处输入图像描述

我打算做的是将所有请求数据放入搜索数组中。然后像上面的查询一样使用循环运行。我怎样才能做到这一点?

PS我在论坛上查了一下,发现了一些类似的问题。其中一些已经过时。其他人没有解决我的问题。

标签: laraveleloquent

解决方案


如果我理解正确,您可以这样做:

$search = request('search', []);
$users = User::query();

foreach($search as $field=>$value)
{
    $users = $users->where($field,'LIKE','%'.$value.'%');        
}

$users = $users->SimplePaginate(15);

推荐阅读