在我的 Laravel 應用程序中,我有一個輸入字段來插入出生日期,
我的日期格式必須是d/m/y
,我的年齡限制必須是 18-70
在我的控制器store
方法中,我有以下 dob 驗證規則。
'date_of_birth'=>['required','bail','date','date_format:d/m/y',function ($attribute, $value, $fail) {
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->y;
if($age<18||$age>70){
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},]
但是每次當我嘗試使用正確的日期提交表單時,就像23/12/1995
它一直說日期格式無效一樣
你的代碼有兩個問題:
1-您應該從驗證中刪除“日期”,因為您傳遞的是字符串而不是日期。
2- 您應該更正格式以使其正確:'d/m/Y' Y 是大寫字母。
$rules = ['date_of_birth' => ['required', 'bail', 'date_format:d/m/Y',
function ($attribute, $value, $fail) {
$age = Carbon::createFromFormat('d/m/Y', $value)->diff(Carbon::now())->y;
if ($age < 18 || $age > 70) {
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},
]];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句