我尝试搜索first_name,last_name和city,但现在始终设置city是否要将用户设置为城市。所以如果请求有城市然后过滤它,我会像这样进行查询
$users = \App\User::join('profiles', 'users.id', '=', 'profiles.member_id')
->where(function($query) {
$query->where('first_name', 'like', '%z%')
->orWhere('last_name', 'like', '%z%');
})
->paginate(10);
if ($request->has('city')) {
$users->where('location', 'like', '%bandung%');
}
但where location like
它从未使用过甚至请求都有城市。我尝试var_dump $users
和count
,最终没有城市查询
答案 0 :(得分:0)
您的代码行顺序几乎没有变化:
$users = \App\User::join('profiles', 'users.id', '=', 'profiles.member_id')
->where(function($query) {
$query->where('first_name', 'like', '%z%')
->orWhere('last_name', 'like', '%z%');
});
if ($request->has('city')) {
$users->where('location', 'like', '%bandung%');
}
$users_data = $users->paginate(10);
变量$users_data
将获得适当的结果。