
LaravelにおけるRequestクラスを使ったバリデーションの設定方法
初めに
今回はLaravelでバリデーションを設定する際にRequestクラスを使って、バリデーションを設定する方法をご紹介したいと思います。
Controllerクラスに直接バリデーションを設定することもできますが、Requestクラスにてバリデーションを作成し、分けることによって以下のようなメリットがあります。
メリット
- コントローラから処理を分離することによって可読性が上がる
- 保守性が上がる
- 他のクラスでも使える
それでは実際に作成していきます。
Requestクラス作成
下記コマンドを実行します。
php artisan make:request クラスに付与する名前
コマンドを実行するとこのようなクラスが作成されます。
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class クラス名 extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}まずは作成したRequestクラスのauthorizeメソッドの戻り値をfalseからtrueに変更します。
trueにすることでバリデーションがきくようになります。
public function authorize()
{
return true;
}次にバリデーションの種類を定義するために必要なrulesメソッドを編集します。
public function rules()
{
return [
'name' => 'required', // バリデーションを設定する項目及びバリデーションの種類を設定
'password' => 'required',
];
}設定可能なバリデーションの種類については下記URLをご参照ください。
https://readouble.com/laravel/5.7/ja/validation.html
messagesメソッドを加えることによって独自のエラーメッセージを設定することも可能です。
public function messages() {
return [
'name.require' => 'ユーザ名は必須項目です',
];
}まとめ
Requestクラスを扱うことによって、可読性の高いソースコードを記載することができるので、他の人にも読みやすいソースコードになるのではないでしょうか。
以上です。