laravelのバリデーションをまとめていきます。
基本的な使い方はドキュメントを参照してもらうとして、もう少し細かい部分まで確認してみたいと思います。
今回は、必須などのデータの有無についてのバリデーションを確認します。
laravel/frameworkのバージョンはv9.45.1
です。
参考までに、バリデーションの実装部分のソースのリンクもつけておきます。
実装部分の前に行われる処理もありますので、注意してください。
required | 必須
必須のチェックを行います。リクエストにパラメーターが含まれていない場合は、エラーとなります。
文字列に対してはtrim
を行いますので、半角スペースのみの場合もエラーとなります。
PHP
$rules = ['parameter' => 'required'];
// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // false
// 値がnull
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // false
// 値が空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // false
// 値が半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // false
// 値が空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // false
$data = ['parameter' => 'a'];
Validator::make($data, $rules)->passes(); // true
$data = ['parameter' => ['a', 'b']];
Validator::make($data, $rules)->passes(); // true
Laravelでの実装はこちら。
filled | 値があること
基本的には必須(required)と同じ条件となりますが、リクエストにパラメーターが含まれていない場合はエラーとなりません。
PHP
$rules = ['parameter' => 'filled'];
// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // true
// 値がnull
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // false
// 値が空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // false
// 値が半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // false
// 値が空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // false
$data = ['parameter' => 'a'];
Validator::make($data, $rules)->passes(); // true
$data = ['parameter' => ['a', 'b']];
Validator::make($data, $rules)->passes(); // true
Laravelでの実装はこちら。
present | 存在すること
リクエストにパラメーターが含まれることをチェックします。
値についてのチェックは行われません。
PHP
$rules = ['parameter' => 'present'];
// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // false
// 値がnull
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // true
// 値が空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // true
// 値が半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // true
// 値が空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // true
$data = ['parameter' => 'a'];
Validator::make($data, $rules)->passes(); // true
$data = ['parameter' => ['a', 'b']];
Validator::make($data, $rules)->passes(); // true
Laravelでの実装はこちら。
prohibited | 禁止
リクエストがないこと(リクエストに含まれないもしくは空文字)であることをチェックします。null
と、空配列の場合は注意が必要です。
PHP
$rules = ['parameter' => 'prohibited'];
// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // true
// 値がnull
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // false
// 値が空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // true
// 値が半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // true
// 値が空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // false
$data = ['parameter' => 'a'];
Validator::make($data, $rules)->passes(); // false
$data = ['parameter' => ['a', 'b']];
Validator::make($data, $rules)->passes(); // false
Laravelでの実装はこちら。
まとめ
パラメーターなし | null | 空文字 | 空配列 | 値あり | |
---|---|---|---|---|---|
必須 (required) | |||||
値があること (filled) | |||||
存在すること (present) | |||||
禁止 (prohibited) |
[AD]