Si quieres hacer una validación normal, por ejemplo de un formulario, que si falla vuelva a él, con los errores y los datos, usamos validator::make
Validator::make($request->all(), $rules)->validate();
Si queremos añadir una regla propia de validación, usamos esto mismo pero con after:
Validator::make($request->all(), $rules)->after(function ($validator) use ($request){ if (session('captcha') != $request->input('captcha')) { $validator->errors()->add( 'captcha', trans('Código incorrecto') ); } })->validate();
Y que pasa si cuando sucede un error y mostramos los errores, en vez de los nombres de los campos del formulario queremos poner otra cosa, como un nombre más descriptivo:
Validator::make($request->all(), $rules)->setAttributeNames(['idField' => trans('NOmbre más descripticvo del campo')])->validate();
Y si al mostrar los errores en vez de usar los mensajes por defecto queremos personalizar los mensajes de error:
$msg = [ 'required' => 'Es necesario que rellenes :attribute' ]; Validator::make($request->all(), $rules, $msg)->validate();
Si cuando falle, queremos hacer otra cosa, que no sea volver a la página anterior:
$validator = Validator::make($request->all(), $rules); if ($validator->fails()) { ... }
Reglas de validación aquí