2
votes

In codeigniter I have used codeigniter form validation library in many controller,

ex: -

$this->form_validation->set_rules('rank', 'Rank', 'required');

If form validation failed, Then it displays

         "The Rank field is required."

Here I want to display custom message,One method I can follow is

$this->form_validation->set_message('required', '%s can not be blank');

If I using this method then I need to repeat this code in every controller wherever I am using "required" form validation method

My question is there is any method to declare this custom message in configure file and automatically use this custom message whenever I using form validation rule "required"?

3

3 Answers

4
votes

If you want to permanently over-ride the error message just hard code it into the form_validation_lang.php file.
(Located at system/language/english)

It you want the choice the extend the form_validation class adding your custom required function and add the appropriate error message in the lang file.

For example;

class MY_Form_validation {
    public function custom_required($str) {
        if ( ! is_array($str)) {
            return (trim($str) == '') ? FALSE : TRUE;
        } else {
            return ( ! empty($str));
        }
    }
}

Then in the lang file;

$lang['custom_required'] = "%s can not be blank.";
2
votes

From the CI docs themselves:

"All of the native error messages are located in the following language file: language/english/form_validation_lang.php

To set your own custom message you can either edit that file, or use the following function:
$this->form_validation->set_message('rule', 'Error Message');"

http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors

0
votes
class MY_Form_validation extends CI_Form_validation {

    public function __construct()
    {
        parent::__construct();
    }
    function required_select($input)
    {
        $this->set_message('required_select','select %s');
        return FALSE;
    }

}

Works for me : )