diff --git a/src/Illuminate/Validation/Validator.php b/src/Illuminate/Validation/Validator.php index 6776034dafaf..3d8d7e5352d4 100755 --- a/src/Illuminate/Validation/Validator.php +++ b/src/Illuminate/Validation/Validator.php @@ -839,6 +839,13 @@ protected function validateRequiredIf($attribute, $value, $parameters) $values = array_slice($parameters, 1); + if (is_bool($data)) { + array_walk($values, function (&$value) { + $value = $value == 'true' ? + true : ($value == 'false' ? false : $value); + }); + } + if (in_array($data, $values)) { return $this->validateRequired($attribute, $value); } diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index bc1c614dfa8b..589ff0f7d18d 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -613,6 +613,14 @@ public function testRequiredIf() $v = new Validator($trans, ['first' => 'dayle', 'last' => 'rees'], ['last' => 'required_if:first,taylor,dayle']); $this->assertTrue($v->passes()); + $trans = $this->getRealTranslator(); + $v = new Validator($trans, ['foo' => true], ['bar' => 'required_if:foo,false']); + $this->assertTrue($v->passes()); + + $trans = $this->getRealTranslator(); + $v = new Validator($trans, ['foo' => true], ['bar' => 'required_if:foo,true']); + $this->assertTrue($v->fails()); + // error message when passed multiple values (required_if:foo,bar,baz) $trans = $this->getRealTranslator(); $trans->addResource('array', ['validation.required_if' => 'The :attribute field is required when :other is :value.'], 'en', 'messages');