やりたいこと
凄く単純な事ですけど、バリデーションルールを使い、ユーザの年齢をチェックしたいことです。
UserRquest.php
public function rules()
{
return [
'age' => 'required|min:1|max:100',
];
}
ageの値は0で入力して、POSTすると、エラーメッセージが出ませんでした。
あれ?!!なんで?
いろいろ調べる、minは文字サイズの最小値として判定するかもしれません?
例:タイトルは1から100文字
public function rules()
{
return [
'title' => 'required|min:1|max:100',
];
}
で、試しすると、思った通りに実行することができました。
じゃあ、between
を使えば、いけるなかと
UserRquest.php
public function rules()
{
return [
'age' => 'required|between:1,100',
];
}
ダメでした。
0を入力したのに、またバリデーションに合格
またいろいろ調べると、ドキュメントから
between:min,max
フィールドが指定された最小値と最大値の間のサイズであることをバリデートします。sizeルールと同様の判定方法で、文字列、数値、配列、ファイルが評価されます。digits_between:最小値,最大値
フィールドが整数で、桁数が最小値から最大値の間であることをバリデートします。
ということでした。
最終のソースコード
UserRquest.php
public function rules()
{
return [
// 'age' => 'required|integer|between:1,100',
'age' => 'required|digits_between:1,2',
];
}
結局、自分の勉強不足でした。
一生忘れないように以上のメモを。