Php 防止在laravel重新提交邮件路线
我想创建搜索表单,然后按视图显示结果。提交后,结果显示在view searchome中,但在提交后刷新页面时,我获得了重新提交。如何通过帖子路径进行搜索并通过刷新页面防止重新提交Php 防止在laravel重新提交邮件路线,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,我想创建搜索表单,然后按视图显示结果。提交后,结果显示在view searchome中,但在提交后刷新页面时,我获得了重新提交。如何通过帖子路径进行搜索并通过刷新页面防止重新提交 public function src_fn(){ $para=Input::get('txt_pro_id'); $result=DB::table('testing_tbl')->where('pro_id','=',$para)->paginate(5); return View::mak
public function src_fn(){
$para=Input::get('txt_pro_id');
$result=DB::table('testing_tbl')->where('pro_id','=',$para)->paginate(5);
return View::make('searchome')->with('result',$result);
}
我的搜索视图
<form method="post" action="{{route('findsresult')}}" name="frm_srch" role="search">
{!! csrf_field() !!}
<input type="Text" name="txt_pro_id" id="txt_pro_id">
<input type="Submit" value="OK">
</form>
要解除post请求并防止浏览器在刷新后反复重新发送它,您可以使用设计模式,为此,您可以创建一个新的get路由:
Route::get('showresults', 'SearchController@src_show_fn')->name('showresults');
在控制器的src\u fn
中,使用重定向调用新的get路由:
public function src_fn(){
$para=Input::get('txt_pro_id');
return redirect('showresults')->with('pro_id', $para);
}
在src\u show\u fn
方法中:
public function src_show_fn(){
$para = session('pro_id');
$result = DB::table('testing_tbl')->where('pro_id','=',$para)->paginate(5);
return View::make('searchome')->with('result',$result);
}
这是浏览器默认设置!如果你不想让浏览器显示
确认表单重新提交
@arunkumar是的,我明白了,但当我使用get my url时,这对你的问题很有帮助:IMHO,使用get
搜索和过滤是最好的解决方案。如果您的搜索功能是针对公共用户的,它将由搜索引擎
索引。如果您使用POST
,则无法执行此操作。您可以添加一个显示结果的get路由,然后在src\u fn
方法中重定向到该路由以解除POST请求!但当我刷新页面时没有发现数据,这意味着会话清除??
public function src_fn(){
$para=Input::get('txt_pro_id');
return redirect('showresults')->with('pro_id', $para);
}
public function src_show_fn(){
$para = session('pro_id');
$result = DB::table('testing_tbl')->where('pro_id','=',$para)->paginate(5);
return View::make('searchome')->with('result',$result);
}