diff --git a/src/Illuminate/Foundation/Http/FormRequest.php b/src/Illuminate/Foundation/Http/FormRequest.php index 5ffd50d9e911..8e60b4bb1cdc 100644 --- a/src/Illuminate/Foundation/Http/FormRequest.php +++ b/src/Illuminate/Foundation/Http/FormRequest.php @@ -172,9 +172,11 @@ protected function failedAuthorization() */ public function validated() { - return $this->only(array_keys( - $this->container->call([$this, 'rules']) - )); + $rules = $this->container->call([$this, 'rules']); + + return $this->only(collect($rules)->keys()->map(function($rule){ + return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; + })->unique()->toArray()); } /** diff --git a/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php b/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php index 36e3a9a1d1a8..b886de7db665 100644 --- a/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php +++ b/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php @@ -38,7 +38,10 @@ public function registerRequestValidate() Request::macro('validate', function (array $rules, ...$params) { validator()->validate($this->all(), $rules, ...$params); - return $this->only(array_keys($rules)); + + return $this->only(collect($rules)->keys()->map(function($rule){ + return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; + })->unique()->toArray()); }); } } diff --git a/src/Illuminate/Foundation/Validation/ValidatesRequests.php b/src/Illuminate/Foundation/Validation/ValidatesRequests.php index 4b867fb51b05..0a0dc7ed006a 100644 --- a/src/Illuminate/Foundation/Validation/ValidatesRequests.php +++ b/src/Illuminate/Foundation/Validation/ValidatesRequests.php @@ -25,9 +25,9 @@ public function validateWith($validator, Request $request = null) $validator->validate(); - return $request->only( - array_keys($validator->getRules()) - ); + return $request->only(collect($validator->getRules())->keys()->map(function($rule){ + return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; + })->unique()->toArray()); } /** @@ -46,7 +46,9 @@ public function validate(Request $request, array $rules, ->make($request->all(), $rules, $messages, $customAttributes) ->validate(); - return $request->only(array_keys($rules)); + return $request->only(collect($rules)->keys()->map(function($rule){ + return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; + })->unique()->toArray()); } /**