7
votes

Messages d'erreur de validation personnalisés dans le fichier de configuration de codeigniter

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 application / config / form_validation.php fichier: xxx

Comme vous pouvez le constater, j'essaie de définir des commentaires de validation personnalisés à l'aide des erreurs Array, comme détaillé ici . Mais je vois toujours le champ global le champ est requis. message.

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?


10 commentaires

Je n'ai pas travaillé avec CodeDediciter, mais votre champ est admin [nom], admin [email], etc ... Si vous n'avez pas seulement Nom, email, etc. 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'] et $ _ ['société'] . 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 dit que c'est automatique si je nomme mon groupe de règles dans le tableau dans le format contrôleur_name / méthode_name . 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 , je n'aurais pas besoin d'appeler manuellement $ ceci-> form_validation-> exécuter ('S'inscrire ') ; Au lieu de cela, je pourrais simplement $ ceci-> form_validation-> exécuter () 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 , puis l'appelé manuellement dans le contrôleur par $ ceci-> form_validation-> exécuter ('Inscription') . Toujours les mêmes messages par défaut.


Avez-vous inclus la bibliothèque de validation de formulaire dans votre autoload.php 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?


6 Réponses :


0
votes

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


0 commentaires

0
votes

Peut-être que vous devriez mettre votre champ clé dans des virgules inversées telles que:

'field' => "admin['name']"


0 commentaires

2
votes

Les messages d'erreur de validation proviennent de fichiers linguistiques car chaque langue a ses propres messages d'erreur

Je pense que vous pouvez modifier des messages d'erreur de validation dans les fichiers de langue.


1 commentaires

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.



0
votes

Tout d'abord, assurez-vous que vous utilisez codeigniter 3 pas de version de codeigniter 2.xx .

J'étais en difficulté avec le même problème et j'ai constaté que le erreurs 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 qui est erreurs xxx

Et qui n'est pas disponible dans la version 2,2 stable , voir form_validation.php et voir la pièce de code qui affiche la différence xxx


0 commentaires

5
votes

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',
    )


1 commentaires

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 !!



0
votes

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'
    )


0 commentaires