I created validation rules in my Member Model with date of birth NOT being required. However, when someone does fill in their date of birth, I want it to be 1. in the correct format and 2. the date cannot be a date in the future.
However, when I fill out my form and leave date of birth empty, I still get the following error:
Here my basic Member.php model:
use Esensi\Model\Model;
class Member extends Model
{
protected $rules = [
'name' => 'required|alpha|min:2|max:255',
'surname' => 'required|alpha|min:2|max:255',
'id_number' => 'required|unique:members,id_number|digits:13',
'mobile_number' => 'required|digits:10',
'email' => 'required|email',
'date_of_birth' => 'date_format:Y-M-D|before:today',
];
}
Here's my MemberController.php store function:
public function store(Request $request)
{
$member = new Member;
$member->name = $request->name;
$member->surname = $request->surname;
$member->id_number = $request->id_number;
$member->mobile_number = $request->mobile_number;
$member->email = $request->email;
$member->date_of_birth = $request->date_of_birth;
if(!$member->save()){
$errors = $member->getErrors();
return redirect()
->action('MemberController@create')
->with('errors', $errors)
->withInput();
}
//successful creation
return redirect()
->action('MemberController@index')
->with('message', '<div class="alert alert-success">Member Created Successfully!</div>');
}
How do I fix it so that date of birth only shows an error when the field is actually filled in but the formatting is incorrect?