我想使用get方法提交表单,然后从URL获取参数并对其进行处理。但我不知道如何生成我的路线。它一直显示错误Sorry, the page you are looking for could not be found.
因此网址应如下所示:search/?q=something
。我想从URL获取something
,并使用它进行数据库查询。
web.php:
Route::get('/search/?q={query}', 'MoviesController@search');
MoviesController.php
public function search($query)
{
$this->validate($query, [
'search' => 'required'
]);
$search = Movie::where('name', 'like', '%' . $query. '%')->get();
return view('inc.search')->with('search', $search);
}
HTML
<form action="/search" method="GET">
{{-- @csrf --}}
<input type="text" name="q" placeholder="search">
<input type="submit">
</form>
我不知道我的HTML部分是否正确!
答案 0 :(得分:1)
?q={query}
您不需要在Route定义中使用它,因为我很确定这是定义Route参数的无效方法。替换
public function search($query){
$this->validate($query, [
'search' => 'required'
]);
使用
public function search(Request $request){
$this->validate($request->all(), [
'q' => 'required'
]);
$search = Movie::where('name', 'like', '%' . $request->input("q"). '%')->get();
并确保use Illuminate\Http\Request;
顶部有MoviesController
。