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
Vous devez vous connecter pour publier un commentaire.
Je pense que d'une façon plus intelligente serait d'utiliser Codeigniter la fonction de rappel (quelque chose de similaire à ci-dessous). Les ouvrages suivants, mais il peut être possible de simplifier encore plus. Si rien d'autre, c'est un point de départ.
Créer deux fonctions de rappel (je l'ai nommé ces custom_required et custom_check_length) et placez-les au fond de votre contrôleur (ou partout où vous pensez que c'est nécessaire).
et...
Ces deux fonctions prennent soin de la set_message aspect de votre validation de formulaire. Pour définir les règles, il vous suffit d'appeler ces deux fonctions, en préfixant le nom de la fonction avec callback_.
Donc...
J'espère que le ci-dessus permet en quelque sorte!!
Je comprends la logique derrière pourquoi vous ne pouvez pas modifier les messages. Mais si vous créez la classe MY_Form_validation comme ceci http://stackoverflow.com/a/6586111/1057527, vous pouvez créer des messages personnalisés pour chaque entrée.
OriginalL'auteur MY_Mark
vous pouvez personnaliser erreur comme je l'ai mentionné ci-dessous, pas besoin de créer une fonction personnalisée pour cette message d'erreur de modification de contenu.
OriginalL'auteur sankar
Vous avez été près de là avec votre pensée initiale. Tous vous avez besoin est d'exécuter la validation après chaque groupe de set_message() change. Je trouve cette approche beaucoup plus facile et plus rapide que les fonctions de rappel, sauf si vous allez utiliser cette exacte de personnalisation dans de nombreux endroits.
Cette approche de validation fonctionne sur toutes les versions de Codeigniter.
OriginalL'auteur brnffn
OriginalL'auteur Shubham Jain