'%".$request->search_string-6ren">
gpt4 book ai didi

php - 如何在 Laravel 中应用 Mysql AND/OR 子句

转载 作者:行者123 更新时间:2023-11-28 23:31:25 25 4
gpt4 key购买 nike

我正在尝试在 Laravel 中进行 MySQL 查询。

> "select * from users u where (name like
> '%".$request->search_string."%' or email like
> '%".$request->search_string."%') and (user_type=2)";

我试过下面的代码

public function searchUsers(Request $request){
$query = DB::table('users as u');
$query->where('u.user_type',2);
$query->where(function($query,$request){
$query->orwhere('u.name','LIKE','%'.$request->search_string.'%');
$query->orwhere('u.email','LIKE','%'.$request->search_string.'%');
});
$result['all_users'] = $query->get();
return Response::json($result);
}

但我收到以下错误

Missing argument 2 for App\Http\Controllers\PatientController::App\Http\Controllers{closure}()

最佳答案

您在 where 子句中有语法错误。看这个:

public function searchUsers(Request $request){
$query = DB::table('users as u');
$query->where('u.user_type',2);
$query->where(function($query)use($request){ // Here is the change
// ^^ Pass only one parameter to closure function and pass `$request` in `use` function
$query->orwhere('u.name','LIKE','%'.$request->search_string.'%');
$query->orwhere('u.email','LIKE','%'.$request->search_string.'%');
});
$result['all_users'] = $query->get();
return Response::json($result);
}

关于php - 如何在 Laravel 中应用 Mysql AND/OR 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com