2017-08-15 103 views
0

我有一個POS在開發中,我注意到當我重新加載頁面時,它重新輸入數據。如何防止數據在頁面重新加載時重新輸入?如何防止數據重新進入數據庫頁面刷新laravel

我的控制器有這樣的代碼:

public function DoAddSales(Request $request) 
{  
    $rules = [ 
     'customer_name'=>'required|alpha', 
     'or_number'=>'required', 
     'payment'=>'required', 
    ]; 

    $validator = Validator::make($request->all(),$rules); 

    if ($validator->fails()) { 
     return back()->withErrors($validator); 
    } else { 
     foreach ($request->input('id_item') as $id) { 
      $item_id[] = $id; 
     } 

     foreach ($request->input('i_name') as $name) { 
      $i_name[] = $name; 
     } 

     foreach ($request->input('id_categ') as $categ) { 
      $categ_id[] = $categ; 
     } 

     foreach ($request->input('quan') as $quan) { 
      $quantity[] = $quan; 
     } 

     foreach ($request->input('tot') as $total) { 
      $each_total[] = $total; 
     } 

     $last = sizeof($request->input('id_item'));  
     $i = 0; 

     while ($i < $last) { 
      $items = Item::find($item_id[$i]);  
      $sales = new sales;  
      $sales->or = $request->input('or_number'); 
      $sales->customer_name = $request->input('customer_name'); 
      $sales->item_id = $item_id[$i]; 
      $sales->item_name = $i_name[$i]; 
      $sales->category_id = $categ_id[$i]; 
      $sales->user_id = Auth::user()->id; 
      $sales->qty = $quantity[$i]; 
      $sales->total = $each_total[$i]; 
      $sales->save(); 

      DB::table('items')->where('id',$item_id[$i]) 
       ->update(['qty'=> $items->qty - $quantity[$i]]); 

      return view ('show_sales')->with(array(
       'name'=>$request->input('customer_name'), 
       'or_no'=>$request->input('or_number'),   
       'total'=>$request->input('getItemPrice'),    
       'change'=>$request->input('change'), 
       'orders'=>$i_name[$i], 
      )); 
      $i++; 
     } 
    } 
} 
+2

在創建數據庫條目後重定向 – inarilo

+1

首先,用於處理諸如保存信息,發送電子郵件或類似內容的方法不應返回視圖。 它應該返回一個重定向響應。這樣用戶不應該能夠刷新包含更新/插入代碼的頁面。 –

+0

https://en.wikipedia.org/wiki/Post/Redirect/Get – linktoahref

回答

0

使用重定向像以下。

假設像\view\list重定向路徑,那麼你就可以作爲

public function DoAddSales(Request $request){ 
    ... 
    // Your code 
    ... 
    return redirect()->to('\view\list')->with('alert-success','Records saved Successfully'); 
} 

注意在函數的末尾添加以下行:此重定向路由必須GET類型。

相關問題