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++;
}
}
}
dbエントリの後にリダイレクト – inarilo
まず、情報の保存、電子メールの送信など、何かを処理するために使用するメソッドは、ビューを返さないでください。 代わりにリダイレクト応答を返す必要があります。この方法では、ユーザーは更新/挿入コードを含むページをリフレッシュできないはずです。 –
https://en.wikipedia.org/wiki/Post/Redirect/Get – linktoahref