@@ -1056,10 +1056,34 @@ public function testRequiredIf()
1056
1056
$ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,false ' ]);
1057
1057
$ this ->assertTrue ($ v ->passes ());
1058
1058
1059
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1060
+ $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,null ' ]);
1061
+ $ this ->assertTrue ($ v ->passes ());
1062
+
1063
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1064
+ $ v = new Validator ($ trans , ['foo ' => 0 ], ['bar ' => 'required_if:foo,0 ' ]);
1065
+ $ this ->assertTrue ($ v ->fails ());
1066
+
1067
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1068
+ $ v = new Validator ($ trans , ['foo ' => '0 ' ], ['bar ' => 'required_if:foo,0 ' ]);
1069
+ $ this ->assertTrue ($ v ->fails ());
1070
+
1071
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1072
+ $ v = new Validator ($ trans , ['foo ' => 1 ], ['bar ' => 'required_if:foo,1 ' ]);
1073
+ $ this ->assertTrue ($ v ->fails ());
1074
+
1075
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1076
+ $ v = new Validator ($ trans , ['foo ' => '1 ' ], ['bar ' => 'required_if:foo,1 ' ]);
1077
+ $ this ->assertTrue ($ v ->fails ());
1078
+
1059
1079
$ trans = $ this ->getIlluminateArrayTranslator ();
1060
1080
$ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,true ' ]);
1061
1081
$ this ->assertTrue ($ v ->fails ());
1062
1082
1083
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1084
+ $ v = new Validator ($ trans , ['foo ' => false ], ['bar ' => 'required_if:foo,false ' ]);
1085
+ $ this ->assertTrue ($ v ->fails ());
1086
+
1063
1087
// error message when passed multiple values (required_if:foo,bar,baz)
1064
1088
$ trans = $ this ->getIlluminateArrayTranslator ();
1065
1089
$ trans ->addLines (['validation.required_if ' => 'The :attribute field is required when :other is :value. ' ], 'en ' );
@@ -1098,6 +1122,26 @@ public function testRequiredUnless()
1098
1122
$ v = new Validator ($ trans , ['foo ' => false ], ['bar ' => 'required_unless:foo,true ' ]);
1099
1123
$ this ->assertTrue ($ v ->fails ());
1100
1124
1125
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1126
+ $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_unless:foo,null ' ]);
1127
+ $ this ->assertTrue ($ v ->fails ());
1128
+
1129
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1130
+ $ v = new Validator ($ trans , ['foo ' => '0 ' ], ['bar ' => 'required_unless:foo,0 ' ]);
1131
+ $ this ->assertTrue ($ v ->passes ());
1132
+
1133
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1134
+ $ v = new Validator ($ trans , ['foo ' => 0 ], ['bar ' => 'required_unless:foo,0 ' ]);
1135
+ $ this ->assertTrue ($ v ->passes ());
1136
+
1137
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1138
+ $ v = new Validator ($ trans , ['foo ' => '1 ' ], ['bar ' => 'required_unless:foo,1 ' ]);
1139
+ $ this ->assertTrue ($ v ->passes ());
1140
+
1141
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1142
+ $ v = new Validator ($ trans , ['foo ' => 1 ], ['bar ' => 'required_unless:foo,1 ' ]);
1143
+ $ this ->assertTrue ($ v ->passes ());
1144
+
1101
1145
// error message when passed multiple values (required_unless:foo,bar,baz)
1102
1146
$ trans = $ this ->getIlluminateArrayTranslator ();
1103
1147
$ trans ->addLines (['validation.required_unless ' => 'The :attribute field is required unless :other is in :values. ' ], 'en ' );
@@ -5074,6 +5118,20 @@ public function providesPassingExcludeIfData()
5074
5118
'has_appointment ' => false ,
5075
5119
],
5076
5120
],
5121
+ [
5122
+ [
5123
+ 'has_appointment ' => ['nullable ' , 'bool ' ],
5124
+ 'appointment_date ' => ['exclude_if:has_appointment,null ' , 'required ' , 'date ' ],
5125
+ ],
5126
+ [
5127
+ 'has_appointment ' => true ,
5128
+ 'appointment_date ' => '2021-03-08 ' ,
5129
+ ],
5130
+ [
5131
+ 'has_appointment ' => true ,
5132
+ 'appointment_date ' => '2021-03-08 ' ,
5133
+ ],
5134
+ ],
5077
5135
[
5078
5136
[
5079
5137
'has_appointment ' => ['required ' , 'bool ' ],
@@ -5408,6 +5466,14 @@ public function testExcludeUnless()
5408
5466
);
5409
5467
$ this ->assertTrue ($ validator ->fails ());
5410
5468
$ this ->assertSame (['mouse ' => ['validation.required ' ]], $ validator ->messages ()->toArray ());
5469
+
5470
+ $ validator = new Validator (
5471
+ $ this ->getIlluminateArrayTranslator (),
5472
+ ['foo ' => true , 'bar ' => 'baz ' ],
5473
+ ['foo ' => 'nullable ' , 'bar ' => 'exclude_unless:foo,null ' ]
5474
+ );
5475
+ $ this ->assertTrue ($ validator ->passes ());
5476
+ $ this ->assertSame (['foo ' => true ], $ validator ->validated ());
5411
5477
}
5412
5478
5413
5479
public function testExcludeValuesAreReallyRemoved ()
0 commit comments