From 7e0cb20730b5ba9eb0b3868d8beb4e635425e986 Mon Sep 17 00:00:00 2001 From: Paul Klimov Date: Wed, 19 Aug 2020 13:08:18 +0300 Subject: [PATCH 1/2] #33357: fix key composition for attribute with dot at validation error messages --- src/Illuminate/Validation/Validator.php | 6 +++++- tests/Validation/ValidationValidatorTest.php | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Validation/Validator.php b/src/Illuminate/Validation/Validator.php index 854c3cbcaa36..c9a78fe8cd06 100755 --- a/src/Illuminate/Validation/Validator.php +++ b/src/Illuminate/Validation/Validator.php @@ -776,7 +776,11 @@ public function addFailure($attribute, $rule, $parameters = []) $this->passes(); } - $attribute = str_replace('__asterisk__', '*', $attribute); + $attribute = str_replace( + [$this->dotPlaceholder, '__asterisk__'], + ['.', '*'], + $attribute + ); if (in_array($rule, $this->excludeRules)) { return $this->excludeAttribute($attribute); diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index 44b152c41c0b..2dbaea9ac3af 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -3953,6 +3953,15 @@ public function testPlaceholdersAreReplaced() 'foo\.bar' => 'required|in:valid', ]); $this->assertTrue($v->fails()); + $this->assertArrayHasKey('foo.bar', $v->errors()->getMessages()); + + $v = new Validator($trans, [ + 'foo.bar' => 'valid' + ], [ + 'foo\.bar' => 'required|in:valid', + ]); + $this->assertTrue($v->passes()); + $this->assertArrayHasKey('foo.bar', $v->validated()); } public function testCoveringEmptyKeys() From f9b9fda8ce8cf3b672a1089671cffb79e7b7da29 Mon Sep 17 00:00:00 2001 From: Paul Klimov Date: Wed, 19 Aug 2020 13:13:28 +0300 Subject: [PATCH 2/2] #33357: fix code style --- tests/Validation/ValidationValidatorTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index 2dbaea9ac3af..7e4b3ee8192c 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -3956,7 +3956,7 @@ public function testPlaceholdersAreReplaced() $this->assertArrayHasKey('foo.bar', $v->errors()->getMessages()); $v = new Validator($trans, [ - 'foo.bar' => 'valid' + 'foo.bar' => 'valid', ], [ 'foo\.bar' => 'required|in:valid', ]);