@@ -1096,10 +1096,34 @@ public function testRequiredIf()
1096
1096
$ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,false ' ]);
1097
1097
$ this ->assertTrue ($ v ->passes ());
1098
1098
1099
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1100
+ $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,null ' ]);
1101
+ $ this ->assertTrue ($ v ->passes ());
1102
+
1103
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1104
+ $ v = new Validator ($ trans , ['foo ' => 0 ], ['bar ' => 'required_if:foo,0 ' ]);
1105
+ $ this ->assertTrue ($ v ->fails ());
1106
+
1107
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1108
+ $ v = new Validator ($ trans , ['foo ' => '0 ' ], ['bar ' => 'required_if:foo,0 ' ]);
1109
+ $ this ->assertTrue ($ v ->fails ());
1110
+
1111
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1112
+ $ v = new Validator ($ trans , ['foo ' => 1 ], ['bar ' => 'required_if:foo,1 ' ]);
1113
+ $ this ->assertTrue ($ v ->fails ());
1114
+
1115
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1116
+ $ v = new Validator ($ trans , ['foo ' => '1 ' ], ['bar ' => 'required_if:foo,1 ' ]);
1117
+ $ this ->assertTrue ($ v ->fails ());
1118
+
1099
1119
$ trans = $ this ->getIlluminateArrayTranslator ();
1100
1120
$ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_if:foo,true ' ]);
1101
1121
$ this ->assertTrue ($ v ->fails ());
1102
1122
1123
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1124
+ $ v = new Validator ($ trans , ['foo ' => false ], ['bar ' => 'required_if:foo,false ' ]);
1125
+ $ this ->assertTrue ($ v ->fails ());
1126
+
1103
1127
// error message when passed multiple values (required_if:foo,bar,baz)
1104
1128
$ trans = $ this ->getIlluminateArrayTranslator ();
1105
1129
$ trans ->addLines (['validation.required_if ' => 'The :attribute field is required when :other is :value. ' ], 'en ' );
@@ -1138,6 +1162,26 @@ public function testRequiredUnless()
1138
1162
$ v = new Validator ($ trans , ['foo ' => false ], ['bar ' => 'required_unless:foo,true ' ]);
1139
1163
$ this ->assertTrue ($ v ->fails ());
1140
1164
1165
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1166
+ $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'required_unless:foo,null ' ]);
1167
+ $ this ->assertTrue ($ v ->fails ());
1168
+
1169
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1170
+ $ v = new Validator ($ trans , ['foo ' => '0 ' ], ['bar ' => 'required_unless:foo,0 ' ]);
1171
+ $ this ->assertTrue ($ v ->passes ());
1172
+
1173
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1174
+ $ v = new Validator ($ trans , ['foo ' => 0 ], ['bar ' => 'required_unless:foo,0 ' ]);
1175
+ $ this ->assertTrue ($ v ->passes ());
1176
+
1177
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1178
+ $ v = new Validator ($ trans , ['foo ' => '1 ' ], ['bar ' => 'required_unless:foo,1 ' ]);
1179
+ $ this ->assertTrue ($ v ->passes ());
1180
+
1181
+ $ trans = $ this ->getIlluminateArrayTranslator ();
1182
+ $ v = new Validator ($ trans , ['foo ' => 1 ], ['bar ' => 'required_unless:foo,1 ' ]);
1183
+ $ this ->assertTrue ($ v ->passes ());
1184
+
1141
1185
// error message when passed multiple values (required_unless:foo,bar,baz)
1142
1186
$ trans = $ this ->getIlluminateArrayTranslator ();
1143
1187
$ trans ->addLines (['validation.required_unless ' => 'The :attribute field is required unless :other is in :values. ' ], 'en ' );
@@ -5406,6 +5450,20 @@ public function providesPassingExcludeIfData()
5406
5450
'has_appointment ' => false ,
5407
5451
],
5408
5452
],
5453
+ [
5454
+ [
5455
+ 'has_appointment ' => ['nullable ' , 'bool ' ],
5456
+ 'appointment_date ' => ['exclude_if:has_appointment,null ' , 'required ' , 'date ' ],
5457
+ ],
5458
+ [
5459
+ 'has_appointment ' => true ,
5460
+ 'appointment_date ' => '2021-03-08 ' ,
5461
+ ],
5462
+ [
5463
+ 'has_appointment ' => true ,
5464
+ 'appointment_date ' => '2021-03-08 ' ,
5465
+ ],
5466
+ ],
5409
5467
[
5410
5468
[
5411
5469
'has_appointment ' => ['required ' , 'bool ' ],
@@ -5740,6 +5798,14 @@ public function testExcludeUnless()
5740
5798
);
5741
5799
$ this ->assertTrue ($ validator ->fails ());
5742
5800
$ this ->assertSame (['mouse ' => ['validation.required ' ]], $ validator ->messages ()->toArray ());
5801
+
5802
+ $ validator = new Validator (
5803
+ $ this ->getIlluminateArrayTranslator (),
5804
+ ['foo ' => true , 'bar ' => 'baz ' ],
5805
+ ['foo ' => 'nullable ' , 'bar ' => 'exclude_unless:foo,null ' ]
5806
+ );
5807
+ $ this ->assertTrue ($ validator ->passes ());
5808
+ $ this ->assertSame (['foo ' => true ], $ validator ->validated ());
5743
5809
}
5744
5810
5745
5811
public function testExcludeWithout ()
0 commit comments