Je suis nouveau à Cowedigniter (V 3.0.0) (venant de CakePHP), et j'essaie de définir des messages d'erreur de validation personnalisés à l'une de mes formulaires. J'utilise un fichier de configuration pour stocker toutes mes règles de validation, comme expliqué Ici . Ceci est mon Comme vous pouvez le constater, j'essaie de définir des commentaires de validation personnalisés à l'aide des erreurs existe un moyen de définir des messages de validation personnalisés dans le fichier de configuration, sans avoir à modifier le fichier global par défaut? p> p> application / config / form_validation.php code> fichier:
Code> Array, comme détaillé ici . Mais je vois toujours le champ global
le champ
6 Réponses :
Veuillez essayer d'utiliser des aides sous application / aides et définir vos erreurs de validation dans la fonction. Ensuite, essayez d'accéder aux règles de validation ou d'utiliser des erreurs sous application / erreurs. Veuillez vous reporter https://ellislab.com/codeigniter/user-guide/general/helpers .html p>
Peut-être que vous devriez mettre votre champ clé dans des virgules inversées telles que:
'field' => "admin['name']"
Les messages d'erreur de validation proviennent de fichiers linguistiques car chaque langue a ses propres messages d'erreur P>
Je pense que vous pouvez modifier des messages d'erreur de validation dans les fichiers de langue. P>
Il demande des règles personnalisées, pas la construction intégrée. Celles-ci proviennent d'un fichier linguistique mais devraient être remplacés et non modifiés en modifiant les fichiers principaux. Probablement.
Tout d'abord, assurez-vous que vous utilisez J'étais en difficulté avec le même problème et j'ai constaté que le Et qui n'est pas disponible dans la version codeigniter 3 code> pas de version de
codeigniter 2.xx code>.
erreurs code> tableau est disponible dans Version de codeigniter 3 et les règles de configuration sont Ensemble dans la méthode exécutée de form_validation (), donc si vous voyez la fonction SET_RULES dans form_validation.php fichier Vous verrez le paramètre 4 th sup> qui est
erreurs code> p>
Essayez de changer l'ordre des clés de votre tableau, quelque chose comme ceci:
'appointments/signup' => array( array( 'field' => 'admin[name]', 'label' => 'Name', 'errors' => array( 'required' => 'Please tell us your %s', ), 'rules' => 'required', )
Je suis également confronté au même problème. Ma version est définie ('CI_Version', '3.1.0'). Enfin je suis ton pas ... acclamations !!
N'essayez pas d'utiliser l'appel direct pour inscrire (your_func_name). $ ceci-> form_validation-> exécuter ('Inscription')
Utilisez une autre méthode - forte> (Controller_Name / Nom_fon) P> $config = array(
'Authenticate_user/signup' => array(
array(
'field' => 'firstname',
'label' => 'Name',
'rules' => 'trim|required'
),
array(
'field' => 'useremail',
'label' => 'Email ID',
'rules' => 'trim|required|callback_check_unique_emailid'
),
array(
'field' => 'gender',
'label' => 'Gender',
'rules' => 'trim|required'
),
array(
'field' => 'age',
'label' => 'Age',
'rules' => 'trim|required'
),
array(
'field' => 'passcode',
'label' => 'Password',
'rules' => 'trim|required'
),
array(
'field' => 'confirmpasscode',
'label' => 'Confirm Password',
'rules' => 'required|matches[passcode]',
'errors' => array(
'matches[passcode]' => 'Only number is allowed'
)
),
array(
'field' => 'usertype',
'label' => 'User Type',
'rules' => 'trim|required'
),
array(
'field' => 'country',
'label' => 'Country',
'rules' => 'trim|required'
),
array(
'field' => 'state',
'label' => 'State',
'rules' => 'trim|required'
),
array(
'field' => 'category',
'label' => 'Category',
'rules' => 'required'
)
Je n'ai pas travaillé avec CodeDediciter, mais votre champ est
admin [nom], admin [email], etc code> ... Si vous n'avez pas seulement
Nom, email, etc. code> comme le champ?
@Andresantiago Je ne pense pas que ce soit une exigence ... au moins cela n'est pas mentionné nulle part. La raison pour laquelle j'ai les champs nommés comme ça est parce que je collectionne deux types distincts de données: données connexes administratives et données liées à leur organisation. La page envoie ensuite le formulaire soumis sous la forme d'une demande AJAX dans deux variables de poteau:
$ _ POST ['admin'] code> et
$ _ ['société'] code>. Les règles de validation fonctionnent comme prévu, à l'exception des messages d'erreur personnalisés ne montrent pas.
Je pense que vous devriez vérifier Message d'erreur de réglage .
@Tpojka j'ai lu la page entière sur la validation de formulaire. Je vais probablement devoir aller prendre cet itinéraire s'il n'y a aucun moyen de garder toutes mes affaires liées à la validation au même endroit.
Désolé de demander, avez-vous chargé le fichier de configuration personnalisé?
Dois-je? Documentation a> dit que c'est automatique i> b> si je nomme mon groupe de règles dans le tableau dans le format
contrôleur_name / méthode_name code>. Quoi qu'il en soit, la validation fonctionne comme prévu lorsque je saisi délibérément des données non valides et que le formulaire soumet correctement lorsque les données sont dans le bon format. Donc, je dois faire des choses (surtout) correctement.
Si ($ ceci-> form_validation-> exécuter ('Signup') == false) {$ this-> chargée-> vue (myform '); } else {$ this-> load-> vue ("Formationccess '); } Avez-vous essayé cela lorsque vous essayez de valider vos formulaires?
@Robertonovelo Selon le Documentation , si je nomme mes groupes de règles de validation dans le format
contrôleur / méthode code>, je n'aurais pas besoin d'appeler manuellement
$ ceci-> form_validation-> exécuter ('S'inscrire ') code>; Au lieu de cela, je pourrais simplement
$ ceci-> form_validation-> exécuter () code> et codeigniter exécuterait automatiquement le groupe de validation de l'action du contrôleur actuel.
J'ai essayé de renommer le groupe de règles à Just
Inscrivez-vous code>, puis l'appelé manuellement dans le contrôleur par
$ ceci-> form_validation-> exécuter ('Inscription') code>. Toujours les mêmes messages par défaut.
Avez-vous inclus la bibliothèque de validation de formulaire dans votre
autoload.php code> ou chargez-vous la bibliothèque dans le contrôleur? Pourriez-vous modifier la question pour inclure les méthodes correspondantes de votre contrôleur?