PRG(Post/Redirect/Get)とは何か
Webアプリケーションのフォーム実装では一般的な手法.
概要
フォームの二重送信を防ぐための仕組みで, Webアプリケーションでは一般的な手法.
Laravelでも多用される.
フォーム表示はGetで行い, 処理はPost, その後はRedirectしてフォームを再表示する.
サンプルコード(Laravel)
public function postEdit(Request $request, $userId) { $user = User::findOrFail($userId); $this->varidate($request, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users, email,'.$user->id, 'password' => 'min:6', ]); $inputs = \Request::only(['name', 'email', 'password']); $inputs['password'] = empty($inputs['password']) ? $user->password : bcrypt($inputs['password']); $user->fill($inputs); $user->save(); return redirect(action('UserController@getIndex')) ->with('status', 'ユーザー情報を更新しました'); }