我正在开发一个应用程序,我应该在包含用户的表上执行搜索。但是,我无法弄清楚如何正确地组成路线以便将视图附加到控制器并返回。我的代码如下: 观点:
<form action='{{url(' users')}}' method='GET'>
<input class='form-control' type="text" name="keyword" placeholder="Search for user...">
</form>
路线:
Route::get('users?keyword={$keyword}', 'UsersController@search');
UsersController中的search():
public function search()
{
$keyword = Request::get('keyword');
$users = User::where("username", "LIKE","%$keyword%")
->orWhere("firstname", "LIKE", "%$keyword%")
->orWhere("lastname", "LIKE", "%$keyword%")
->orWhere("email", "LIKE", "%$keyword%")
->orWhere("phone", "LIKE", "%$keyword%")->get();
return view('search', compact('users'));
}
有人可以告诉一下正确的语法是什么吗?提前谢谢!
答案 0 :(得分:4)
您的路线应为:
Route::get('users', 'UsersController@search');
在您的控制器中,您可以使用请求对象的get
函数获取查询参数,您已经在使用它。
您可以通过以下任何函数获取参数:
request()->get('keyword');
request()->input('keyword');
request()->query('keyword');
<强>更新强>
在文件顶部添加以下导入:
use Illuminate\Http\Request;
然后在你的控制器函数中将其注入:
public function search(Request $request)
{
$keyword = $request->input('keyword');
// or
$keyword = $request->query('keyword');
// rest of the code
}
答案 1 :(得分:2)
试试这个:
Route::get('users', 'UsersController@search');
控制器
public function search(Request $request) {
$keyword = $request->get('keyword');
$users = User::where("username", "LIKE","%$keyword%")
->orWhere("firstname", "LIKE", "%$keyword%")
->orWhere("lastname", "LIKE", "%$keyword%")
->orWhere("email", "LIKE", "%$keyword%")
->orWhere("phone", "LIKE", "%$keyword%")->get();
return view('search', compact('users'));
}