Legen Sie eine form_validation Regel aus einer Bibliothek in CodeIgniter (PHP)

Ok, also ich habe da ein großes problem mit CodeIgniter Flexibilität. Ich habe viele persönliche Regeln (wie 20) für eine Eingabe in einem Formular in einem riesigen Projekt.

Alles funktioniert, während ich mit dem klassischen "callback_" system von CodeIgniter. Ich habe nur die Methoden in der gleichen Klasse als die form zu überprüfen und überprüft es richtig.

Mein problem ist :

1) ich verwenden möchte, alle diese Regeln in einem anderen form_validation in einem anderen controller ohne copy/paste den code ; wir alle wissen, es ist schmutzig/böse.

2) im Idealfall würde ich schätzen, diese Regeln in eine große Bibliothek, und da braucht es so etwas wie 800 Linien, und dies ist nicht eine gute Idee, lassen Sie es in meinem controller, der, wie ich sagte, dieses Projekt ist ziemlich umfangreich.

Ist es 6 Stunden bin ich auf der Suche nach einer Lösung und es ist absolut nichts sauber :

  • Ich habe bereits eine MY_Form_Validation, um einige Allgemeine Regeln, aber ich weiß nicht, wie die Idee zu mischen, meine spezifischen Regeln in einer globalen Klasse, die nennen es-jedes mal vergeblich. Plus diese Regeln enthalten viele Bibliotheken, Modelle, native CI Kern-Methoden wie $this->input> - post (), die die Fehler erzeugen, wenn ich alles in diesem MY_Form_Validation. Nicht die gute Lösung 🙁

  • Erstellte ich eine MY_Controller auch eine Methode mit dem Namen 'importiert', das re-generieren von ausgewählten Bibliotheken-Methoden innerhalb der controller (in PHP4 war es eine Art der 'aggregate_methods" - Funktion, wenn die Menschen neugierig sind) ; das system funktioniert perfekt, aber CodeIgniter versteht es nicht. Können die Methoden aufgerufen werden, die innerhalb der controller aber es scheint das framework überprüfen Sie die $CI Inhalte zu nennen, die Regeln (Form_validation.php Zeile 590 in '/system/') so, dass es nicht funktioniert am Ende, es ist auch schwer, dies zu ändern-core-Teil, den ich lieber nicht zu berühren, und gab auf.

$this->laden->Bibliothek('volt/lbl_validation');
$dies->Import('Lbl_validation');
//Dann kannst du aufrufen $this->lbl_validation->Methode() mit $this->Methode() in der controller -

  • Ich habe versucht zu hacken CI-erstellen eines individuellen form_validation in meiner Bibliothek ('lbl_validation') ; das system war ein bisschen chaotisch, aber hat funktioniert. Das problem ist, wenn ich zurück kam, CI form_validation system zum anzeigen von Fehlermeldungen, es war eine wahre spaghetti-code, der nicht funktioniert gut. Nicht die gute Lösung.

Ich habe auch versucht einige andere beschissene Lösungen, aber ich möchte lieber nicht bekennen.

Nun bin ich hier vor meinem computer und Frage mich , warum schlimme Dinge passiert sind gute Menschen, warum dies so schwer zu trennen set_rules aus der genannten Methoden in CodeIgniter, warum Sie nicht im Voraus planen, könnten die Menschen benötigt haben, um Anruf Bibliotheken, Methoden, Regeln. Ich weiß nicht, was zu tun ist und ich bin zu zögern zu stellen, dumm require() irgendwo und machen alles schmutzig und unordentlich wie mein Schreibtisch jetzt.

Da vielleicht jemand mit einem guten dans saubere Lösung. All mein hoffen, dass sich die StackOverFlow-Gemeinschaft ; jemand ? Eine verrückte CI geek ?

Danke 😉

  • Wie wäre es mit einem form_validation unter /config? In dieser Datei erstellen Sie ein array mit allen Ihren Regeln. Ich habe mit dieser Methode für eine Weile ohne Probleme.
InformationsquelleAutor Laurent | 2013-09-15
Schreibe einen Kommentar