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..7e4b3ee8192c 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()