2010-09-05 4 views
1
<?php 
class MY_Form_validation extends CI_Form_validation { 

    function My_Form_validation() 
    { 
     parent::CI_Form_validation(); 
    } 

} 

Ceci est le code dans le fichier MY_Form_validation.php que j'ai créé dans mon dossier de bibliothèques CI. Il y avait quelques fonctions là-dedans mais je les ai enlevées pour essayer d'aller au fond de ceci. En utilisant cette extension de bibliothèque, la validation de formulaire ne fonctionne simplement pas du tout. J'ai toutes mes règles de validation de formulaire dans un fichier de configuration. Si je supprime MY_Form_validation.php, tout fonctionne parfaitement.La bibliothèque d'extension Codeigniter ne fonctionne PAS. Aucune raison

Un message sur la carte CodeIgniter n'a donné aucun résultat.

Peut-être que quelqu'un ici pourrait vous aider? Merci

+0

une sortie d'erreur? – teemitzitrone

+0

Non. Les pages se chargent bien mais toutes mes requêtes if (formvalidated) reviennent fausses. –

Répondre

5

Essayez à la place. Vous devez passer le tableau $ config de la classe étendue à la CI_Form_validation. Assurez-vous également que l'orthographe est correcte et sensible à la casse.

class MY_Form_validation extends CI_Form_validation { 

    function MY_Form_validation($config = array()) 
    { 
     parent::CI_Form_validation($config); 
    } 
+0

Brillant - En utilisant cela, les règles de validation normales fonctionnent. Je n'ai pas encore eu l'occasion d'implémenter mes fonctions personnalisées, mais j'imagine qu'elles fonctionneront. Pourriez-vous expliquer pourquoi cette variable $ config doit être adoptée? Est-ce documenté n'importe où? Sur les forums CodeIgniter, un membre établi m'a informé qu'il utilisait le même code que MINE et que cela fonctionnait. Donc, j'ai une résolution, mais ne le comprends pas vraiment .. Cheers –

+0

La classe loader CI de vérifie un fichier de configuration correspondant lors du chargement des bibliothèques. Cela se produit _ci_init_class() dans CI_Loader. Le tableau $ config défini dans system/application/config/form_validation.php est passé à la classe étendue, PAS à CI_Form_validation. C'est pourquoi vous devrez le passer de votre classe étendue à CI_Form_validation dans le constructeur - vous pouvez également définir de nouvelles règles ici. J'espère que ça vous aide un peu :) – rkj

3

Si vous avez mis à jour à CodeIgniter 2.0.x ou plus tard, assurez-vous que vous modifiez le code ci-dessus:

class MY_Form_validation extends CI_Form_validation { 

function MY_Form_validation($config = array()) 
{ 
    parent::__construct($config); 
} 

Notez que le changement de:

parent::CI_Form_validation($config);

To:

parent::__construct($config);

Certainement m'a causé un problème pour un peu!

1

Marque Nom du fichier dans votre application/répertoire de la bibliothèque: MY_Form_validation.php

puis dans votre classe

code:

class MY_Form_validation extends CI_Form_validation 

{ 
function My_Form_validation() 
    { 
     parent::CI_Form_validation(); 
    } 

} 
Questions connexes