在我的 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\'age devrait être 18-70');
}
},]
但是每次當我嘗試使用正確的日期提交表單時,就像23/12/1995它一直說日期格式無效一樣
uj5u.com熱心網友回復:
你的代碼有兩個問題:
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\'age devrait être 18-70');
}
},
]];
uj5u.com熱心網友回復:
format在函式中使用方法
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->format('%y');
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370314.html
下一篇:按每個ID的日期選擇觀察
