CodeIgniter Forums

Full Version: CodeIgniter\Validation\Validation::setRules() must be of the type array, string given
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi there, I believe I found a bug with the controller validate method. The following doc page...

https://codeigniter4.github.io/CodeIgnit...-post-data

... states that I can pass the name of a validation group when validating POST data. This however is not that case as the Controller validate method only passes the rules to setRules as an array and generates a PHP error. It should check if the rules are a string or an array and then make the correct call to the validation service.

Something like:

PHP Code:
if (is_string($rules)) {
    
$this->validator->setRuleGroup($rules);
    
$success $this->validator->withRequest($this->request)->run();
} else {
    
$success $this->validator->withRequest($this->request)->setRules($rules$messages)->run();


Thanks,
Kyle
This was fixed! Thanks!
processRules() function which inside System/Validation/validation.php 

I added this code and I fixed the problem. now validation work for  multiple variable  I sended like "name[]"


Code:
       if (is_array($value)) {
           foreach ($value as $k => $v) {
               $this->processRules($field, $label, $v, $rules, $data);
           }
           return true;
       }
You should never ever edit or change CodeIgniter system code!
(01-25-2019, 10:19 AM)InsiteFX Wrote: [ -> ]
You should never ever edit or change CodeIgniter system code!

I Agree but please tell me what is the way the validation for multiple array like name[] ?  

"dot array syntax " is not work..

This is the way I founded. What is yours?