Skip to content

Commit fd208de

Browse files
[10.x] Use translator from validator in Can and Enum rules (#49251)
* [10.x] Use translator from validator in `Can` and `Enum` rules * formatting --------- Co-authored-by: Taylor Otwell <[email protected]>
1 parent d0d57da commit fd208de

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

src/Illuminate/Validation/Rules/Can.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
namespace Illuminate\Validation\Rules;
44

55
use Illuminate\Contracts\Validation\Rule;
6+
use Illuminate\Contracts\Validation\ValidatorAwareRule;
67
use Illuminate\Support\Facades\Gate;
78

8-
class Can implements Rule
9+
class Can implements Rule, ValidatorAwareRule
910
{
1011
/**
1112
* The ability to check.
@@ -21,6 +22,13 @@ class Can implements Rule
2122
*/
2223
protected $arguments;
2324

25+
/**
26+
* The current validator instance.
27+
*
28+
* @var \Illuminate\Validation\Validator
29+
*/
30+
protected $validator;
31+
2432
/**
2533
* Constructor.
2634
*
@@ -56,10 +64,23 @@ public function passes($attribute, $value)
5664
*/
5765
public function message()
5866
{
59-
$message = trans('validation.can');
67+
$message = $this->validator->getTranslator()->get('validation.can');
6068

6169
return $message === 'validation.can'
6270
? ['The :attribute field contains an unauthorized value.']
6371
: $message;
6472
}
73+
74+
/**
75+
* Set the current validator.
76+
*
77+
* @param \Illuminate\Validation\Validator $validator
78+
* @return $this
79+
*/
80+
public function setValidator($validator)
81+
{
82+
$this->validator = $validator;
83+
84+
return $this;
85+
}
6586
}

src/Illuminate/Validation/Rules/Enum.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
namespace Illuminate\Validation\Rules;
44

55
use Illuminate\Contracts\Validation\Rule;
6+
use Illuminate\Contracts\Validation\ValidatorAwareRule;
67
use TypeError;
78

8-
class Enum implements Rule
9+
class Enum implements Rule, ValidatorAwareRule
910
{
1011
/**
1112
* The type of the enum.
@@ -14,6 +15,13 @@ class Enum implements Rule
1415
*/
1516
protected $type;
1617

18+
/**
19+
* The current validator instance.
20+
*
21+
* @var \Illuminate\Validation\Validator
22+
*/
23+
protected $validator;
24+
1725
/**
1826
* Create a new rule instance.
1927
*
@@ -56,10 +64,23 @@ public function passes($attribute, $value)
5664
*/
5765
public function message()
5866
{
59-
$message = trans('validation.enum');
67+
$message = $this->validator->getTranslator()->get('validation.enum');
6068

6169
return $message === 'validation.enum'
6270
? ['The selected :attribute is invalid.']
6371
: $message;
6472
}
73+
74+
/**
75+
* Set the current validator.
76+
*
77+
* @param \Illuminate\Validation\Validator $validator
78+
* @return $this
79+
*/
80+
public function setValidator($validator)
81+
{
82+
$this->validator = $validator;
83+
84+
return $this;
85+
}
6586
}

0 commit comments

Comments
 (0)