简体   繁体   中英

Custom validation errors in laravel

In updating profile i use a validator class method:

class UpdateRequest extends Request {
    public function authorize() { return true; }
    public function rules() {
        return [
            'name' => 'required',
            'email' => 'required|email',
        ];
    }
}

How to add an additional validation error like:

public function postUpdate(UpdateRequest $request)
    if($user->email == $request->get('email')) {
        $request->addEerror("The email has already been taken."); //shows an fatal error        
    }
}

?

Thank you

You have not mentioned which Laravel version you are using, assuming 5.1

You can create a message array for different validation type, like the example below:

$rules = [
     'first_name' => 'required',
     'last_name' => 'required',
     'email' => 'required|email|unique:users,email,'.$user->id
];

In your resources/lang/en/validation.php file

$custom_messages = [
     'required' => 'The :attribute field is required.',
     'email' => [
         'required' => 'The email id field is required.',
         'email' => 'Please enter a valid email format.',
         'unique' => 'The email id has already been taken.',
     ]
];

This should do the trick.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM