How to use sometimes rule in Laravel 5 request class

后端 未结 4 834
星月不相逢
星月不相逢 2021-02-12 10:56

I have the following request class:



        
4条回答
  •  野趣味
    野趣味 (楼主)
    2021-02-12 12:00

    According to your comment

    I want the rule valid_date to only run if the regex rule returns true. Otherwise the valid_date rule errors if the date isnt in the right format.

    Validator::extend('valid_date', function($attribute, $value, $parameters)
        {
           \\use the regex here instead
    
            if (!preg_match('/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/', $value)) return false; 
    
    
            $pieces = explode('/', $value);
            if(strpos($value, '/')===FALSE) {
                return false;
            } else {
                if(checkdate($pieces[1], $pieces[0], $pieces[2])) {
                    return true;
                } else {
                    return false;
                }
            }
        });
    
    
    $validator = Validator::make($data, [
       'first_name' => 'required',
        'last_name' => 'required',
        'email'     => 'required|email|unique:users,email',
        'dob'       => 'required|valid_date',
        'mobile'    => 'required',
        'password'  => 'required|confirmed'
    ]);
    

提交回复
热议问题