php – Eloquent分组或者在哪里
发布时间:2020-12-13 15:59:33 所属栏目:PHP教程 来源:网络整理
导读:目前有一个Eloquent声明: $contacts = Contacts::where('lname','LIKE',$searchquery.'%') -orWhere('fname',$searchquery.'%') -orWhere('phone','%'.$searchquery) -where('active','=',1)-get(); 它把它视为 select * from contacts where lname like $s
目前有一个Eloquent声明:
$contacts = Contacts::where('lname','LIKE',$searchquery.'%') ->orWhere('fname',$searchquery.'%') ->orWhere('phone','%'.$searchquery) ->where('active','=',1)->get(); 它把它视为 select * from contacts where lname like $searchquery+'%' or lname like $searchquery+'%' or lname like $searchquery+'%' and active = 1 我需要的是 select * from contacts where (lname like $searchquery+'%' or lname like $searchquery+'%' or lname like $searchquery+'%') and active = 1 我如何在Eloquent中进行分组?我找到了几个例子,例如: DB::table('users') ->where('name','John') ->orWhere(function ($query) { $query->where('votes','>',100) ->where('title','<>','Admin'); }) ->get(); 但我只习惯Eloquent,而不是Laravels DB Query构建器.我尝试将Eloquent表单改编成这个 $contacts = Contacts::->where('active','1') ->where(function ($query) { $query->orWhere('lname',$searchquery.'%') ->orWhere('lname',$searchquery.'%') ->orWhere('phone','%'.$searchquery); }) ->get(); 没有成功,因为它无法识别函数内的$searchquery. 我错过了什么? 解决方法
所以,这就是你要做的:
DB::table('users')->where(function($query) use ($searchQuery){ $query->where('lname',$searchQuery . '%') ->orWhere('fname',$searchQuery . '%') ->orWhere('phone','%' . $searchquery); }) ->get(); 请注意,我已经使用了($searchQuery),因此可以在闭包内使用它 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |