Validation rules to a config file in CodeIgniter
You can save sets of rules to a config file. To start, create a new file called form_validation.php, inside the application/config/ directory. The rules must be contained within a variable $config, as with all other config files.
The rules from our Signu form would now appear as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php $config = array( array( 'field' => 'fullname', 'label' => 'Full Name', 'rules' => 'required' ), array( 'field' => 'email', 'label' => 'Email Address', 'rules' => 'required|valid_email' ), array( 'field' => 'phonenumber', 'label' => 'Phone Number', 'rules' => 'required|numeric|exact_length[10]' ), array( 'field' => 'username', 'label' => 'User name', 'rules' => 'required|alpha_numeric|min_length[6]|max_length[12]|is_unique[tblusers.username]' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required|min_length[6]' ), array( 'field' => 'cpassword', 'label' => 'Confirm Password', 'rules' => 'required|min_length[6]|matches[password]' ) ); |
Creating sets of rules
If you have more than one form that needs validating, you can create sets of rules. To do this, you need to place the rules into ‘sub-arrays’. The rules for our contact form would appear as follows when we place it into a set:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php $config = array( 'signup' => array( array( 'field' => 'fullname', 'label' => 'Full Name', 'rules' => 'required' ), array( 'field' => 'email', 'label' => 'Email Address', 'rules' => 'required|valid_email' ), array( 'field' => 'phonenumber', 'label' => 'Phone Number', 'rules' => 'required|numeric|exact_length[10]' ), array( 'field' => 'username', 'label' => 'User name', 'rules' => 'required|alpha_numeric|min_length[6]|max_length[12]|is_unique[tblusers.username]' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required|min_length[6]' ), array( 'field' => 'cpassword', 'label' => 'Confirm Password', 'rules' => 'required|min_length[6]|matches[password]' ) ) ); |
This method allows you to have as many sets of rules as you need.
Calling a specific set of rules
You need to specify the rule set that you want to validate the form against, on the run function. Our edited controller would now look like this:
1 2 3 4 5 6 7 8 |
if($this->form_validation->run('signup') == FALSE) { // load the signup form } else { // signup for submitted successfully } |