Comment puis-je configurer des messages d'erreur personnalisés pour chaque champ de formulaire dans Codeigniter?

je suis en train de configurer un codeigniter formulaire avec différents messages d'erreur.

set_message(règle, msg) est la création d'un message pour l'ensemble de la forme.

J'ai besoin de:

$this->form_validation->set_rules('name', 'First Name', 'required');
$this->form_validation->set_message('name', 'required', 'Enter your Name');    
$this->form_validation->set_rules('second', 'Variables', 'required');
$this->form_validation->set_message('second', 'required', 
                                    'The Variables are required');

L'ajout de l' %s dans la chaîne de message n'est d'aucune aide dans ce cas, puisque les messages doivent être complètement différent.

Éventuellement, je pourrais faire quelque chose comme:

contrôleur

$this->form_validation->set_rules('name', 'Name',
                                  'required|min_length[6]|max_length[12]');
$this->form_validation->set_rules('second', 'Variables',
                                  'required|min_length[3]|max_length[5]');
$this->form_validation->set_message('required', 'required');
$this->form_validation->set_message('min_length', 'short');
$this->form_validation->set_message('max_length', 'long');

vue

switch(form_error('name')) {
    case '<p>required</p>':
        echo 'Enter your Name';
        break;
    case '<p>short</p>':
        echo 'min length 6';
        break;
    case '<p>long</p>':
        echo 'min length 12';
        break;

}

switch(form_error('second')) {
    case '<p>required</p>':
        echo 'The Variables are required';
        break;
    case '<p>short</p>':
        echo 'min length 3';
        break;
    case '<p>long</p>':
        echo 'min length 5';
        break;

}

Mais n'est-ce pas là une façon plus intelligente de le faire?

OriginalL'auteur s3mre8 | 2012-02-02