Laravelのold関数【現役エンジニアが解説】

PROGRAM

今回は、Laravelのold関数について、簡単に解説していきます。

old関数とは

Laravelにはold関数が用意されています。

old関数では直前のリクエストデータを取得できます。

例えば、old(‘name’)とすれば、name属性がnameとして送信されたデータの値を取得できます。

コントローラではバリデーションのみ

old関数を使うためにコントローラで特別な設定をする必要はありません。

ただし、old関数を使う場面はバリデーションエラー時にほぼ限られると思います。

public function register(Request $request) {
	$request->validate([
		'name' => 'required',
		'email' => 'email|required'
	]); // バリデーションエラーで元のページへ

	// バリデーション後の処理
}

そのため、上記のように、対象のコントローラの関数内でバリデーションを行うようにさえすれば問題ありません。

Bladeではold関数を埋め込む

バリデーションエラー時のためのold関数はBladeで使います。

<input type="text" name="name" value="{{ old('name') }}>
<input type="text" name="name" value="{{ old('email') }}>

上記のように、input要素のvalue属性の値に{{ }}付きでold関数を埋め込みます。

このようにすることで、バリデーションエラーで元のページに戻った際に入力値が残ります。