🦣
[Laravel]バリデーションルールの実装確認方法
Laravelでは豊富なバリデーションルールが用意されていて、公式ドキュメントにも説明が記載されていますが、より詳細な仕様を知りたい時は実装を見る必要があると思います。(勉強にもなる)
各ルールの実装を確認
src/Illuminate/Validation/Concerns/ValidatesAttributes.php
というトレイトに各ルールが実装されています。
validate⚪︎⚪︎()
というメソッド群で実装されています。⚪︎⚪︎
は各ルール名をパスカルケースにしたものです。
ex.
boolean
ルール => validateBoolean()
date
ルール => validateDate()
date_equals
ルール => validateDateEquals()
boolean
ルールの実装
例: 例えば、boolean
ルールの実装は以下です。
/**
* Validate that an attribute is a boolean.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function validateBoolean($attribute, $value)
{
$acceptable = [true, false, 0, 1, '0', '1'];
return in_array($value, $acceptable, true);
}
in_array()
で各リテラルと厳密比較しているので、文字列"true", "false"は弾かれる仕様ということがわかりますね。
※ Laravel 11.9.1で確認しました。
おまけ
ちなみにPHPStorm x Laravel Ideaならルール文字列をコマンドクリックして定義にジャンプできます。
便利すぎる🔥
Discussion