diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index 13fe1a648108..84e0964ba147 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -1422,7 +1422,7 @@ public function validateRequiredIf($attribute, $value, $parameters) [$values, $other] = $this->prepareValuesAndOther($parameters); - if (in_array($other, $values, is_bool($other))) { + if (in_array($other, $values)) { return $this->validateRequired($attribute, $value); } @@ -1443,7 +1443,7 @@ public function validateExcludeIf($attribute, $value, $parameters) [$values, $other] = $this->prepareValuesAndOther($parameters); - return ! in_array($other, $values, is_bool($other)); + return ! in_array($other, $values); } /** @@ -1460,7 +1460,7 @@ public function validateExcludeUnless($attribute, $value, $parameters) [$values, $other] = $this->prepareValuesAndOther($parameters); - return in_array($other, $values, is_bool($other)); + return in_array($other, $values); } /** @@ -1515,7 +1515,7 @@ public function validateRequiredUnless($attribute, $value, $parameters) [$values, $other] = $this->prepareValuesAndOther($parameters); - if (! in_array($other, $values, is_bool($other))) { + if (! in_array($other, $values)) { return $this->validateRequired($attribute, $value); } diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index 4ac71213c984..a176ce42a055 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -1056,34 +1056,10 @@ public function testRequiredIf() $v = new Validator($trans, ['foo' => true], ['bar' => 'required_if:foo,false']); $this->assertTrue($v->passes()); - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => true], ['bar' => 'required_if:foo,null']); - $this->assertTrue($v->passes()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => 0], ['bar' => 'required_if:foo,0']); - $this->assertTrue($v->fails()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => '0'], ['bar' => 'required_if:foo,0']); - $this->assertTrue($v->fails()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => 1], ['bar' => 'required_if:foo,1']); - $this->assertTrue($v->fails()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => '1'], ['bar' => 'required_if:foo,1']); - $this->assertTrue($v->fails()); - $trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['foo' => true], ['bar' => 'required_if:foo,true']); $this->assertTrue($v->fails()); - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => false], ['bar' => 'required_if:foo,false']); - $this->assertTrue($v->fails()); - // error message when passed multiple values (required_if:foo,bar,baz) $trans = $this->getIlluminateArrayTranslator(); $trans->addLines(['validation.required_if' => 'The :attribute field is required when :other is :value.'], 'en'); @@ -1122,26 +1098,6 @@ public function testRequiredUnless() $v = new Validator($trans, ['foo' => false], ['bar' => 'required_unless:foo,true']); $this->assertTrue($v->fails()); - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => true], ['bar' => 'required_unless:foo,null']); - $this->assertTrue($v->fails()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => '0'], ['bar' => 'required_unless:foo,0']); - $this->assertTrue($v->passes()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => 0], ['bar' => 'required_unless:foo,0']); - $this->assertTrue($v->passes()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => '1'], ['bar' => 'required_unless:foo,1']); - $this->assertTrue($v->passes()); - - $trans = $this->getIlluminateArrayTranslator(); - $v = new Validator($trans, ['foo' => 1], ['bar' => 'required_unless:foo,1']); - $this->assertTrue($v->passes()); - // error message when passed multiple values (required_unless:foo,bar,baz) $trans = $this->getIlluminateArrayTranslator(); $trans->addLines(['validation.required_unless' => 'The :attribute field is required unless :other is in :values.'], 'en'); @@ -5118,20 +5074,6 @@ public function providesPassingExcludeIfData() 'has_appointment' => false, ], ], - [ - [ - 'has_appointment' => ['nullable', 'bool'], - 'appointment_date' => ['exclude_if:has_appointment,null', 'required', 'date'], - ], - [ - 'has_appointment' => true, - 'appointment_date' => '2021-03-08', - ], - [ - 'has_appointment' => true, - 'appointment_date' => '2021-03-08', - ], - ], [ [ 'has_appointment' => ['required', 'bool'], @@ -5466,14 +5408,6 @@ public function testExcludeUnless() ); $this->assertTrue($validator->fails()); $this->assertSame(['mouse' => ['validation.required']], $validator->messages()->toArray()); - - $validator = new Validator( - $this->getIlluminateArrayTranslator(), - ['foo' => true, 'bar' => 'baz'], - ['foo' => 'nullable', 'bar' => 'exclude_unless:foo,null'] - ); - $this->assertTrue($validator->passes()); - $this->assertSame(['foo' => true], $validator->validated()); } public function testExcludeValuesAreReallyRemoved()