Welcome Guest, Not a member yet? Register   Sign In
Form validation and native PHP functions
#5

If you always want required rules to run first you can do the following

Create a MY_Form_validation class in ./application/libraries/
Add this code to it

PHP Code:
<?php  

defined
('BASEPATH') OR exit('No direct script access allowed');

class 
MY_Form_validation extends CI_Form_validation {

 
   protected function _prepare_rules($rules)
 
   {
 
       $new_rules = array();
 
       $required_rules = array();
 
       $callbacks = array();

 
       foreach ($rules as &$rule)
 
       {
 
           // Let 'required' always be the first (non-callback) rule
 
           if ($rule === 'required')
 
          {
 
              array_unshift($required_rules'required');
 
           }
 
           // 'isset' is a kind of a weird alias for 'required' ...
 
           elseif ($rule === 'isset' && (empty($new_rules) OR $new_rules[0] !== 'required'))
 
           {
 
              array_unshift($required_rules'isset');
 
           }
 
           // The old/classic 'callback_'-prefixed rules
 
           elseif (is_string($rule) && strncmp('callback_'$rule9) === 0)
 
           {
 
               $callbacks[] = $rule;
 
           }
 
           // Proper callables
 
           elseif (is_callable($rule))
 
           {
 
           $callbacks[] = $rule;
 
           }
 
           // "Named" callables; i.e. array('name' => $callable)
 
           elseif (is_array($rule) && isset($rule[0], $rule[1]) && is_callable($rule[1]))
 
           {
 
                $callbacks[] = $rule;
 
           }
 
           // Everything else goes at the end of the queue
 
           else
            
{
 
           $new_rules[] = $rule;
 
       }
 
   }

 
   // Merge required rules with the callbacks, setting the required rules as the first rules to be run
 
   $callbacks array_merge($required_rules$callbacks);
 
   return array_merge($callbacks$new_rules);
 
   }

Reply


Messages In This Thread
RE: Form validation and native PHP functions - by Martin7483 - 06-20-2017, 07:02 AM



Theme © iAndrew 2016 - Forum software by © MyBB