@@ -198,6 +198,10 @@ private function set_error(string $data_key, array $rules, string $rule, $custom
198
198
'true ' => $ data_key .' should be alphabet. ' ,
199
199
'false ' => $ data_key .' should not be alphabet. '
200
200
],
201
+ 'null ' => [
202
+ 'true ' => $ data_key .' should be empty or null. ' ,
203
+ 'false ' => $ data_key .' should not be empty or null. '
204
+ ],
201
205
'numeric ' => [
202
206
'true ' => $ data_key .' should be numeric. ' ,
203
207
'false ' => $ data_key .' should not be numeric. '
@@ -309,7 +313,7 @@ private function set_error(string $data_key, array $rules, string $rule, $custom
309
313
*/
310
314
private function validate_required (array $ data , string $ data_key , array $ rules ) : bool {
311
315
if (!isset ($ rules ['file ' ]) || $ rules ['file ' ] === false ) {
312
- if ((!isset ( $ data [ $ data_key]) && $ rules [ ' required ' ] === true ) || ( isset ( $ data[ $ data_key ]) && empty ( $ data [ $ data_key ]) && $ data [ $ data_key ] !== 0 && $ rules ['required ' ] === true )) {
316
+ if ((!array_key_exists ( $ data_key, $ data) && $ rules ['required ' ] === true )) {
313
317
$ this ->set_error ($ data_key , $ rules , 'required ' );
314
318
return false ;
315
319
} else {
@@ -323,6 +327,26 @@ private function validate_required(array $data, string $data_key, array $rules)
323
327
}
324
328
}
325
329
330
+ /**
331
+ * Validate null fields.
332
+ *
333
+ * @param array $data
334
+ * @param string $data_key
335
+ * @param array $rules
336
+ * @return boolean
337
+ */
338
+ private function validate_null (array $ data , string $ data_key , array $ rules ) : bool {
339
+ if ((isset ($ data [$ data_key ]) && !empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === true )) {
340
+ $ this ->set_error ($ data_key , $ rules , 'null ' );
341
+ return false ;
342
+ } else if ((isset ($ data [$ data_key ]) && empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === false )) {
343
+ $ this ->set_error ($ data_key , $ rules , 'null ' );
344
+ return false ;
345
+ } else {
346
+ return true ;
347
+ }
348
+ }
349
+
326
350
/**
327
351
* Validate alphabet fields.
328
352
*
0 commit comments