2 Stimmen

Zend Validate - Wie übergibt man Kontext-Werte aus einem anderen Unterformular?

Ich habe ein Formular in 3 Unterformulare aufgeteilt und für eines der Elemente, in der letzten SubForm, erstelle ich einen Validator, der erweitert Zend_Validator_Abstract .

Dieser Validator muss prüfen, ob ein Wert im zweiten Unterformular nicht leer ist. Dieser Wert wird jedoch nicht in der $context Array für das Element im dritten Unterformular.

Wie kann man diesen Wert sinnvollerweise in der $context über Teilformulare hinweg?

...

Nach einigem Nachdenken ist die einzige Möglichkeit, die ich mir vorstellen kann, dies zu tun, eine Referenz des übergeordneten Formulars an den Konstruktor des Validators zu übergeben, obwohl dies die Kapselung bricht.

3voto

Wil Moore III Punkte 6723

Sie können auch versuchen, die Funktion Formularobjekt isValid()-Methode und verwendet die dort verfügbare Variable $data.

Zum Beispiel:

<?php 
class MyForm extends Zend_Form {
    public function isValid($data) {
        // check $data['fieldname'] or add a new validator here, then...
        return parent::isValid($data);
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X