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++;
}
}
}
在創建數據庫條目後重定向 – inarilo
首先,用於處理諸如保存信息,發送電子郵件或類似內容的方法不應返回視圖。 它應該返回一個重定向響應。這樣用戶不應該能夠刷新包含更新/插入代碼的頁面。 –
https://en.wikipedia.org/wiki/Post/Redirect/Get – linktoahref