你通过在搜索$请求 - >输入(“RECHERCHE”)或$请求 - > RECHERCHE
公共职能getClubs(请求$要求){
整个请求改变$请求
if($request->has('recherche')){
$clubs = Structure::where('nom_structure' , 'LIKE', '%'. $request->recherche .'%')->where('type_structure_id' , '=' , 4)->get();
}else{
$clubs = Structure::where('type_structure_id' , 4)->paginate(10);
}
dd($clubs);
return view('structure/clubs' , compact('clubs'));
}
一个方便的调试功能是toSql(),它会告诉你实际的SQL语句
$clubs = Structure::where('nom_structure' , 'LIKE', '%'. $request->recherche .'%')->where('type_structure_id' , '=' , 4)->toSql();
编辑使用多个何在
$clubs = Structure::where('nom_structure' , 'LIKE', '%'. $request->recherche .'%')
->orWhere('club_name' , 'LIKE' , '%'. $request->recherche .'%')
->whereHas('categories', function ($query) use ($request) {
$query->where('category_name','LIKE' , '%'. $request->recherche .'%');
})
->where('type_structure_id' , '=' , 4)
->get();
而且我个人的如何做到这一点更倾向于将
$search = $request->get('recherche');
if ($search) {
$query = Structure::Where('nom_structure', 'like', "%$search%");
} else {
$query = Structure::select();
}
$clubs = $query->where('type_structure_id', 4)->paginate(10)
->appends(['recherche' => $search]);
非常感谢!它正在工作!如果我想用多个搜索参数构建这个函数。例如,用户可以通过俱乐部的名称或俱乐部的号码进行搜索?我是否需要在声明中添加或条件? –
是的,你只是使用orWhere,我已经更新了我的答案来显示这个,并且还添加了一个whereHas,它向你展示了如何搜索关系,如果你发现有用,你可以在https://laravel.com/docs/找到更多信息。 5.4 /雄辩关系 – rchatburn
非常感谢!!!唯一的问题是我的结果似乎没有得到这个条件 - > where('type_structure_id','=',4),实际上我试过了,它也显示我也是type_structure,它们不等于ID 4。我只想显示type_structure_id = 4的俱乐部。为什么条件不适用于查询? –