1<?php 2 3namespace Illuminate\Foundation\Validation; 4 5use Illuminate\Contracts\Validation\Factory; 6use Illuminate\Http\Request; 7use Illuminate\Validation\ValidationException; 8 9trait ValidatesRequests 10{ 11 /** 12 * Run the validation routine against the given validator. 13 * 14 * @param \Illuminate\Contracts\Validation\Validator|array $validator 15 * @param \Illuminate\Http\Request|null $request 16 * @return array 17 * 18 * @throws \Illuminate\Validation\ValidationException 19 */ 20 public function validateWith($validator, Request $request = null) 21 { 22 $request = $request ?: request(); 23 24 if (is_array($validator)) { 25 $validator = $this->getValidationFactory()->make($request->all(), $validator); 26 } 27 28 return $validator->validate(); 29 } 30 31 /** 32 * Validate the given request with the given rules. 33 * 34 * @param \Illuminate\Http\Request $request 35 * @param array $rules 36 * @param array $messages 37 * @param array $customAttributes 38 * @return array 39 * 40 * @throws \Illuminate\Validation\ValidationException 41 */ 42 public function validate(Request $request, array $rules, 43 array $messages = [], array $customAttributes = []) 44 { 45 return $this->getValidationFactory()->make( 46 $request->all(), $rules, $messages, $customAttributes 47 )->validate(); 48 } 49 50 /** 51 * Validate the given request with the given rules. 52 * 53 * @param string $errorBag 54 * @param \Illuminate\Http\Request $request 55 * @param array $rules 56 * @param array $messages 57 * @param array $customAttributes 58 * @return array 59 * 60 * @throws \Illuminate\Validation\ValidationException 61 */ 62 public function validateWithBag($errorBag, Request $request, array $rules, 63 array $messages = [], array $customAttributes = []) 64 { 65 try { 66 return $this->validate($request, $rules, $messages, $customAttributes); 67 } catch (ValidationException $e) { 68 $e->errorBag = $errorBag; 69 70 throw $e; 71 } 72 } 73 74 /** 75 * Get a validation factory instance. 76 * 77 * @return \Illuminate\Contracts\Validation\Factory 78 */ 79 protected function getValidationFactory() 80 { 81 return app(Factory::class); 82 } 83} 84