|
7 | 7 | use Illuminate\Contracts\Bus\Dispatcher; |
8 | 8 | use Illuminate\Http\JsonResponse; |
9 | 9 | use Illuminate\Http\Request; |
10 | | -use Illuminate\Support\Str; |
11 | 10 | use Illuminate\Validation\ValidationException; |
12 | 11 | use Illuminate\Validation\Validator; |
13 | 12 |
|
@@ -64,41 +63,27 @@ public function validate(Request $request, array $rules, array $messages = [], a |
64 | 63 | { |
65 | 64 | $validator = $this->getValidationFactory()->make($request->all(), $rules, $messages, $customAttributes); |
66 | 65 |
|
67 | | - if ($validator->fails()) { |
68 | | - $this->throwValidationException($request, $validator); |
| 66 | + try { |
| 67 | + $validated = $validator->validate(); |
| 68 | + |
| 69 | + if (method_exists($this, 'extractInputFromRules')) { |
| 70 | + // Backwards compatability... |
| 71 | + $validated = $this->extractInputFromRules($request, $rules); |
| 72 | + } |
| 73 | + } catch (ValidationException $exception) { |
| 74 | + if (method_exists($this, 'throwValidationException')) { |
| 75 | + // Backwards compatability... |
| 76 | + $this->throwValidationException($request, $validator); |
| 77 | + } else { |
| 78 | + $exception->response = $this->buildFailedValidationResponse( |
| 79 | + $request, $this->formatValidationErrors($validator) |
| 80 | + ); |
| 81 | + |
| 82 | + throw $exception; |
| 83 | + } |
69 | 84 | } |
70 | 85 |
|
71 | | - return $this->extractInputFromRules($request, $rules); |
72 | | - } |
73 | | - |
74 | | - /** |
75 | | - * Get the request input based on the given validation rules. |
76 | | - * |
77 | | - * @param \Illuminate\Http\Request $request |
78 | | - * @param array $rules |
79 | | - * @return array |
80 | | - */ |
81 | | - protected function extractInputFromRules(Request $request, array $rules) |
82 | | - { |
83 | | - return $request->only(collect($rules)->keys()->map(function ($rule) { |
84 | | - return Str::contains($rule, '.') ? explode('.', $rule)[0] : $rule; |
85 | | - })->unique()->toArray()); |
86 | | - } |
87 | | - |
88 | | - /** |
89 | | - * Throw the failed validation exception. |
90 | | - * |
91 | | - * @param \Illuminate\Http\Request $request |
92 | | - * @param \Illuminate\Contracts\Validation\Validator $validator |
93 | | - * @return void |
94 | | - * |
95 | | - * @throws \Illuminate\Validation\ValidationException |
96 | | - */ |
97 | | - protected function throwValidationException(Request $request, $validator) |
98 | | - { |
99 | | - throw new ValidationException($validator, $this->buildFailedValidationResponse( |
100 | | - $request, $this->formatValidationErrors($validator) |
101 | | - )); |
| 86 | + return $validated; |
102 | 87 | } |
103 | 88 |
|
104 | 89 | /** |
|
0 commit comments