@@ -100,7 +100,7 @@ public function validate($data, $multiple_data=false) : bool {
100100 } else if ((is_array ($ data ) ? false : is_array (json_decode ($ data , true )))) {
101101 $ data = json_decode ($ data , true );
102102 } else if (!is_array ($ data )) {
103- $ this ->errors ['error ' ] = 'Invalid data for validation ' ;
103+ $ this ->errors ['error ' ] = 'Error : Invalid data for validation ' ;
104104 return false ;
105105 }
106106
@@ -109,34 +109,83 @@ public function validate($data, $multiple_data=false) : bool {
109109 if (is_array ($ rules )) {
110110 foreach ($ rules as $ rule => $ value ) {
111111 $ rule = strtolower ($ rule );
112+ //Check rule is valid or not
112113 if (in_array ($ rule , $ this ->predefined_rules )) {
113114 $ func = "validate_ " .$ rule ;
114115 //Validate multiple data
115116 if ($ multiple_data === true ) {
116117 foreach ($ data as $ single_data ) {
117118 if (is_array ($ single_data )) {
118- if ($ this ->$ func ($ single_data , $ data_key , $ rules ) === false ) {
119- $ is_valid = false ;
120- break ;
119+ //Check data key is array or not
120+ if (strpos ($ data_key , '. ' )) {
121+ $ data_keys = explode ('. ' , $ data_key );
122+ $ tmp_data_key = $ data_keys [count ($ data_keys )-1 ];
123+ array_pop ($ data_keys );
124+ $ tmp_single_data = NULL ;
125+ foreach ($ data_keys as $ key ) {
126+ if ($ tmp_single_data === NULL ) {
127+ $ tmp_single_data = isset ($ single_data [$ key ]) ? $ single_data [$ key ] : NULL ;
128+ } else {
129+ $ tmp_single_data = isset ($ tmp_single_data [$ key ]) ? $ tmp_single_data [$ key ] : NULL ;
130+ }
131+ }
132+ if (!is_array ($ tmp_single_data )) {
133+ $ tmp_single_data = array ();
134+ }
135+ //Validate data
136+ if ($ this ->$ func ($ tmp_single_data , $ tmp_data_key , $ rules , $ data_key ) === false ) {
137+ $ is_valid = false ;
138+ break ;
139+ }
140+ } else {
141+ //Validate data
142+ if ($ this ->$ func ($ single_data , $ data_key , $ rules ) === false ) {
143+ $ is_valid = false ;
144+ break ;
145+ }
121146 }
122147 } else {
123- $ this ->errors ['error ' ] = 'Invalid data for validation ' ;
148+ $ this ->errors ['error ' ] = 'Error : Invalid data for validation ' ;
124149 return false ;
125150 }
126151 }
127152 } else {
128- if ($ this ->$ func ($ data , $ data_key , $ rules ) === false ) {
129- $ is_valid = false ;
130- break ;
153+ //Check data key is array or not
154+ if (strpos ($ data_key , '. ' )) {
155+ $ data_keys = explode ('. ' , $ data_key );
156+ $ tmp_data_key = $ data_keys [count ($ data_keys )-1 ];
157+ array_pop ($ data_keys );
158+ $ tmp_data = NULL ;
159+ foreach ($ data_keys as $ key ) {
160+ if ($ tmp_data === NULL ) {
161+ $ tmp_data = isset ($ data [$ key ]) ? $ data [$ key ] : NULL ;
162+ } else {
163+ $ tmp_data = isset ($ tmp_data [$ key ]) ? $ tmp_data [$ key ] : NULL ;
164+ }
165+ }
166+ if (!is_array ($ tmp_data )) {
167+ $ tmp_data = array ();
168+ }
169+ //Validate data
170+ if ($ this ->$ func ($ tmp_data , $ tmp_data_key , $ rules , $ data_key ) === false ) {
171+ $ is_valid = false ;
172+ break ;
173+ }
174+ } else {
175+ //Validate data
176+ if ($ this ->$ func ($ data , $ data_key , $ rules ) === false ) {
177+ $ is_valid = false ;
178+ break ;
179+ }
131180 }
132181 }
133182 } else {
134- $ this ->errors ['error ' ] = 'Invalid rules for validation ' ;
183+ $ this ->errors ['error ' ] = 'Error : Invalid rules for validation ' ;
135184 return false ;
136185 }
137186 }
138187 } else {
139- $ this ->errors ['error ' ] = 'Invalid rules for validation ' ;
188+ $ this ->errors ['error ' ] = 'Error : Invalid rules for validation ' ;
140189 return false ;
141190 }
142191 }
@@ -310,18 +359,19 @@ private function set_error(string $data_key, array $rules, string $rule, $custom
310359 * @param array $data
311360 * @param string $data_key
312361 * @param array $rules
362+ * @param string $message_key
313363 * @return boolean
314364 */
315- private function validate_required (array $ data , string $ data_key , array $ rules ) : bool {
365+ private function validate_required (array $ data , string $ data_key , array $ rules, string $ message_key = NULL ) : bool {
316366 if (!isset ($ rules ['file ' ]) || $ rules ['file ' ] === false ) {
317367 if ((!array_key_exists ($ data_key , $ data ) && $ rules ['required ' ] === true )) {
318- $ this ->set_error ($ data_key , $ rules , 'required ' );
368+ $ this ->set_error (( $ message_key === NULL ? $ data_key : $ message_key ) , $ rules , 'required ' );
319369 return false ;
320370 } else {
321371 return true ;
322372 }
323373 } else if ((!isset ($ _FILES [$ data_key ]) && $ rules ['required ' ] === true && $ rules ['file ' ] === true ) || (isset ($ _FILES [$ data_key ]) && empty ($ _FILES [$ data_key ]) && $ _FILES [$ data_key ] !== 0 && $ rules ['required ' ] === true && $ rules ['file ' ] === true )) {
324- $ this ->set_error ($ data_key , $ rules , 'required ' );
374+ $ this ->set_error (( $ message_key === NULL ? $ data_key : $ message_key ) , $ rules , 'required ' );
325375 return false ;
326376 } else {
327377 return true ;
@@ -334,14 +384,15 @@ private function validate_required(array $data, string $data_key, array $rules)
334384 * @param array $data
335385 * @param string $data_key
336386 * @param array $rules
387+ * @param string $message_key
337388 * @return boolean
338389 */
339- private function validate_null (array $ data , string $ data_key , array $ rules ) : bool {
340- if (array_key_exists ($ key , $ data ) && !empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === true ) {
341- $ this ->set_error ($ data_key , $ rules , 'null ' );
390+ private function validate_null (array $ data , string $ data_key , array $ rules, string $ message_key = NULL ) : bool {
391+ if (array_key_exists ($ data_key , $ data ) && !empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === true ) {
392+ $ this ->set_error (( $ message_key === NULL ? $ data_key : $ message_key ) , $ rules , 'null ' );
342393 return false ;
343- } else if (array_key_exists ($ key , $ data ) && empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === false ) {
344- $ this ->set_error ($ data_key , $ rules , 'null ' );
394+ } else if (array_key_exists ($ data_key , $ data ) && empty ($ data [$ data_key ]) && $ data [$ data_key ] !== 0 && $ data [$ data_key ] !== false && $ rules ['null ' ] === false ) {
395+ $ this ->set_error (( $ message_key === NULL ? $ data_key : $ message_key ) , $ rules , 'null ' );
345396 return false ;
346397 } else {
347398 return true ;
0 commit comments