diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index a8e2a73b2407..85a7592d99d4 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -1547,10 +1547,6 @@ public function validateRequiredUnless($attribute, $value, $parameters) { $this->requireParameterCount(2, $parameters, 'required_unless'); - if (! Arr::has($this->data, $parameters[0])) { - return true; - } - [$values, $other] = $this->parseDependentRuleParameters($parameters); if (! in_array($other, $values, is_bool($other) || is_null($other))) { diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index 6c13c7ce0186..0d3bab85d4cc 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -1198,13 +1198,25 @@ public function testRequiredUnless() $this->assertTrue($v->passes()); $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => false], ['bar' => 'required_unless:foo,false']); - $this->assertTrue($v->passes()); + $v = new Validator($trans, [], ['bar' => 'required_unless:foo,true']); + $this->assertTrue($v->fails()); $trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['foo' => false], ['bar' => 'required_unless:foo,true']); $this->assertTrue($v->fails()); + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['bar' => '1'], ['bar' => 'required_unless:foo,true']); + $this->assertTrue($v->passes()); + + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['foo' => false], ['bar' => 'required_unless:foo,false']); + $this->assertTrue($v->passes()); + + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, [], ['foo' => 'required_unless:bar,null']); + $this->assertTrue($v->passes()); + $trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['foo' => true], ['bar' => 'required_unless:foo,null']); $this->assertTrue($v->fails());