更改返回视图以在 laravel 搜索功能上返回路线
Posted
技术标签:
【中文标题】更改返回视图以在 laravel 搜索功能上返回路线【英文标题】:Change return View to return Route on laravel search function 【发布时间】:2021-11-11 09:32:53 【问题描述】:我正在尝试更正我的控制器的 searchresult 函数的代码,所以我担心当我对搜索结果进行分页或进行表单验证时,我收到以下错误消息:此路由不支持 GET 方法。支持的方法:POST。 所以如果你能帮助我,我想将我的代码从返回视图更改为返回路线。 这是我的代码
路线:
Route::get('/post/searchpost', 'PostsController@index')->name('index');
Route::post('/post/search_result', 'PostsController@searchresult')->name('searchresult');
刀片 //索引
<div class="posts">
<h1>Posts</h1>
<div class="sreach">
<form action="route('searchresult', app()->getLocale())" method="POST">
csrf_field()
<div class="form-row">
<div class="form-group col-md-2">
<label class="lbl" for="cat_id">title</label>
<select class="form-control" id="cat_id" name="cat_id">
<option value="" selected></option>
@foreach ($categoriesas $cat)
<option value="$cat->id">$cat->cat_mame</option>
@endforeach
</select>
</div>
<div class="form-group col-md-2">
<label class="lbl" for="title">Post title</label>
<input type="text" class="form-control" id="title" name="title">
</div>
<div class="form-group col-md-2">
<label class="lbl" for="content">Post content</label>
<textarea class="form-control" id="content" name="content">
</textarea >
</div>
</div>
<center>
<button type="submit">search</button>
</center>
</form>
</div>
<table id="posts">
<thead>
<tr>
<th>__('main.title')</th>
<th>__('main.post_category')</th>
<th>__('main.content')</th>
</tr>
</thead>
<tbody>
@foreach($posts as $postkey => $post)
<tr>
<td>$post->title</td>
<td>$post->category->cat_name</td>
<td>$post->content</td>
</tr>
@endforeach
</tbody>
</table>
刀片 //搜索结果
<div class="posts">
<h1>Posts</h1>
<div class="sreach">
//that make me search again in result page using the same form
<form action="route('searchresult', app()->getLocale())" method="POST">
csrf_field()
<div class="form-row">
<div class="form-group col-md-2">
<label class="lbl" for="cat_id">title</label>
<select class="form-control" id="cat_id" name="cat_id">
<option value="" selected></option>
@foreach ($categoriesas $cat)
<option value="$cat->id">$cat->cat_mame</option>
@endforeach
</select>
</div>
<div class="form-group col-md-2">
<label class="lbl" for="title">Post title</label>
<input type="text" class="form-control" id="title" name="title">
</div>
<div class="form-group col-md-2">
<label class="lbl" for="content">Post content</label>
<textarea class="form-control" id="content" name="content">
</textarea >
</div>
</div>
<center>
<button type="submit">search</button>
</center>
</form>
</div>
<table id="posts">
<thead>
<tr>
<th>__('main.title')</th>
<th>__('main.post_category')</th>
<th>__('main.content')</th>
</tr>
</thead>
<tbody>
@foreach($details as $detailkey => $detail)
<tr>
<td>$detail->title</td>
<td>$detail->category->cat_name</td>
<td>$detail->content</td>
</tr>
@endforeach
</tbody>
</table>
</div>
控制器
public function index()
$ctegories= Category::all();
return view('search')->with('posts', Post::all())->with('ctegories', $ctegories);
public function searchresult(Request $request)
$title= $request->title;
$content= $request->content;
$cat_id= $request->cat_id;
$posts= Post::where('title', 'like', '%' . $title. '%')
->whereHas('category', function(Builder $query) use ($sujet_id)
$query->where('id', $cat_id);
)
->orderBy('created_at','desc')
->get();
//for form dropdown categories
$categories= Category::all();
if(count ($posts) > 0)
//this what i want to change from view to route with those parameters
return view('searchresult')
->withDetails($posts)->withQuery($title)
->withCategories($categories);
else
return redirect()->route('index')->with('success','search not found');
因此,否则该功能可以完美运行,并且我得到了数据 我会感谢你的帮助谢谢你
【问题讨论】:
试试这个:return redirect()->route("")->with() 首先感谢您的回答我已经尝试过这种方法但它不起作用 我认为它必须在路线内(***)但我不知道该怎么做。因为 with() 给我带来了消息和异常,就像我的例子中一样 【参考方案1】:您应该使用以下方法返回带参数的路由:
return \Redirect::route('nameOfRoute', ['param1'=>'value1','param2'=>'value2',...])->with('message', 'Search found!!!');
【讨论】:
感谢您的回答,能否请您告诉我如何使用我的代码调整此代码,因为这是我遇到的唯一困难我尝试了这种方法,但我无法使用我的参数跨度> @optic4predator1 你没有显示路线。也请详细说明.. 我已经更新了@Amit Senjaliya 的帖子以上是关于更改返回视图以在 laravel 搜索功能上返回路线的主要内容,如果未能解决你的问题,请参考以下文章