我正在一个应用程序上工作,在那里我应该在包含用户的表上执行搜索。然而,我不知道如何正确地组成路由,以便将视图与控制器连接起来。我的代码如下:观点:
<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'));
}
谁能告诉我正确的语法是什么?提前感谢!
你的路由应该是:
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
}
试试这个:
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'));
}