From 813395dfa1d15259bb1e54e023b78d6c89377bb0 Mon Sep 17 00:00:00 2001 From: Thomas Calvet Date: Tue, 5 Dec 2023 17:56:52 +0100 Subject: [PATCH 1/2] [10.x] Use translator from validator in `Can` and `Enum` rules --- src/Illuminate/Validation/Rules/Can.php | 25 ++++++++++++++++++++++-- src/Illuminate/Validation/Rules/Enum.php | 25 ++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/Illuminate/Validation/Rules/Can.php b/src/Illuminate/Validation/Rules/Can.php index 6732bc2f6c9f..a86ad90ce5d9 100644 --- a/src/Illuminate/Validation/Rules/Can.php +++ b/src/Illuminate/Validation/Rules/Can.php @@ -3,9 +3,10 @@ namespace Illuminate\Validation\Rules; use Illuminate\Contracts\Validation\Rule; +use Illuminate\Contracts\Validation\ValidatorAwareRule; use Illuminate\Support\Facades\Gate; -class Can implements Rule +class Can implements Rule, ValidatorAwareRule { /** * The ability to check. @@ -21,6 +22,13 @@ class Can implements Rule */ protected $arguments; + /** + * The validator performing the validation. + * + * @var \Illuminate\Validation\Validator + */ + protected $validator; + /** * Constructor. * @@ -56,10 +64,23 @@ public function passes($attribute, $value) */ public function message() { - $message = trans('validation.can'); + $message = $this->validator->getTranslator()->get('validation.can'); return $message === 'validation.can' ? ['The :attribute field contains an unauthorized value.'] : $message; } + + /** + * Set the performing validator. + * + * @param \Illuminate\Validation\Validator $validator + * @return $this + */ + public function setValidator($validator) + { + $this->validator = $validator; + + return $this; + } } diff --git a/src/Illuminate/Validation/Rules/Enum.php b/src/Illuminate/Validation/Rules/Enum.php index 37c7d3faae1e..fea188909e72 100644 --- a/src/Illuminate/Validation/Rules/Enum.php +++ b/src/Illuminate/Validation/Rules/Enum.php @@ -3,9 +3,10 @@ namespace Illuminate\Validation\Rules; use Illuminate\Contracts\Validation\Rule; +use Illuminate\Contracts\Validation\ValidatorAwareRule; use TypeError; -class Enum implements Rule +class Enum implements Rule, ValidatorAwareRule { /** * The type of the enum. @@ -14,6 +15,13 @@ class Enum implements Rule */ protected $type; + /** + * The validator performing the validation. + * + * @var \Illuminate\Validation\Validator + */ + protected $validator; + /** * Create a new rule instance. * @@ -56,10 +64,23 @@ public function passes($attribute, $value) */ public function message() { - $message = trans('validation.enum'); + $message = $this->validator->getTranslator()->get('validation.enum'); return $message === 'validation.enum' ? ['The selected :attribute is invalid.'] : $message; } + + /** + * Set the performing validator. + * + * @param \Illuminate\Validation\Validator $validator + * @return $this + */ + public function setValidator($validator) + { + $this->validator = $validator; + + return $this; + } } From 9f440e417e8894bb4a35400a5a0671aa6b893e44 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Tue, 5 Dec 2023 16:05:56 -0600 Subject: [PATCH 2/2] formatting --- src/Illuminate/Validation/Rules/Can.php | 4 ++-- src/Illuminate/Validation/Rules/Enum.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Illuminate/Validation/Rules/Can.php b/src/Illuminate/Validation/Rules/Can.php index a86ad90ce5d9..8565dd6d0b78 100644 --- a/src/Illuminate/Validation/Rules/Can.php +++ b/src/Illuminate/Validation/Rules/Can.php @@ -23,7 +23,7 @@ class Can implements Rule, ValidatorAwareRule protected $arguments; /** - * The validator performing the validation. + * The current validator instance. * * @var \Illuminate\Validation\Validator */ @@ -72,7 +72,7 @@ public function message() } /** - * Set the performing validator. + * Set the current validator. * * @param \Illuminate\Validation\Validator $validator * @return $this diff --git a/src/Illuminate/Validation/Rules/Enum.php b/src/Illuminate/Validation/Rules/Enum.php index fea188909e72..d66a16d126bc 100644 --- a/src/Illuminate/Validation/Rules/Enum.php +++ b/src/Illuminate/Validation/Rules/Enum.php @@ -16,7 +16,7 @@ class Enum implements Rule, ValidatorAwareRule protected $type; /** - * The validator performing the validation. + * The current validator instance. * * @var \Illuminate\Validation\Validator */ @@ -72,7 +72,7 @@ public function message() } /** - * Set the performing validator. + * Set the current validator. * * @param \Illuminate\Validation\Validator $validator * @return $this