技術はあとからついてくる。

技術はあとからついてくる。

就活開始の半年前にエンジニアに目覚めた人

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', 'ユーザー情報を更新しました');
}