Custom Laravel validation messages
Laravel 5.7.*
Also You can try something like this. For me is the easiest way to make custom messages in methods when you want to validate requests:
public function store(){ request()->validate([ 'file' => 'required', 'type' => 'required' ], [ 'file.required' => 'You have to choose the file!', 'type.required' => 'You have to choose type of the file!' ]);}
If you use $this->validate()
simplest one, then you should write code something like this..
$rules = [ 'name' => 'required', 'email' => 'required|email', 'message' => 'required|max:250', ]; $customMessages = [ 'required' => 'The :attribute field is required.' ]; $this->validate($request, $rules, $customMessages);
You can provide custom message like :
$rules = array( 'URL' => 'required|url' ); $messages = array( 'URL.required' => 'URL is required.' );$validator = Validator::make( $request->all(), $rules, $messages );if ( $validator->fails() ) { return [ 'success' => 0, 'message' => $validator->errors()->first() ];}
or
The way you have tried, you missed Validator::replacer()
, to replace the :variable
Validator::replacer('custom_validation_rule', function($message, $attribute, $rule, $parameters){ return str_replace(':foo', $parameters[0], $message);});