防止在laravel路线后重新提交

时间:2018-01-02 08:13:22

标签: php laravel laravel-5 laravel-5.3

我想创建搜索表单,然后按视图显示结果。在我提交结果显示在视图searchome但是当提交后刷新页面我得到重新提交我如何通过邮政路线搜索并防止刷新页面重新提交?

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>

我的搜索引擎视图

<table cellpadding="10px" width="100%" class="table_str">
    <thead style="font-size: 11px;">
        <tr>
            <th>Pro ID</th>
            <th>Pro Name</th>
            <th>Pro price</th>
        </tr>
    </thead>
    <tbody style="font-size: 11.5px;">
        @foreach($result as $vals)
            <tr scope="row" style="border-bottom: solid 1px #ccc">
                <td>{{$vals->pro_id}}</td>
                <td>{{$vals->pro_name}}</td>  
                <td>{{$vals->pro_price}}</td>                   
            </tr>
        @endforeach
    </tbody>
</table>
<?php echo $result->render(); ?>

我的路线

Route::post('findsresult', 'SearchController@src_fn')->name('findsresult');

1 个答案:

答案 0 :(得分:2)

要解除发布请求并阻止浏览器在刷新后反复重新发送,可以使用Post/Redirect/Get设计模式,为此可以创建新的获取路径:

Route::get('showresults', 'SearchController@src_show_fn')->name('showresults');

在控制器的src_fn中,使用重定向调用新的get路由:

public function src_fn(){
    $para=Input::get('txt_pro_id');
    return redirect('showresults')->with('pro_id', $para);
}

src_show_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);
}