Yii - Regeln dynamisch vom Controller ändern

7

Nehmen wir an, ich habe ein Produkt, das eine Farbe haben kann. Abhängig vom Produkttyp kann das Farbfeld erforderlich sein oder nicht.

Wenn Farbe immer benötigt wird, würde ich im Produktmodell

haben %Vor%

Ich möchte jedoch, dass dies je nach Produkttyp dynamisch ist.

Soll das in der Steuerung gemacht werden? Ich könnte mir vorstellen, etwas in der Steuerung wie folgt zu haben:

%Vor%

Was ist der beste Weg, um das zu erreichen?

Danke

    
Adrian Gunawan 01.05.2012, 23:12
quelle

4 Antworten

15

Sie können ein Szenario verwenden. Im Modell:

%Vor%

Und in der Steuerung:

%Vor%

Die erforderliche Farbe wird also validiert, wenn das Szenario des Modells hasColour

lautet     
Rezan Achmad 02.05.2012, 02:06
quelle
8
%Vor%

Jetzt $ form hat zwei Pflichtfelder.

    
bores 12.03.2013 09:13
quelle
4

Ein Ansatz besteht darin, eine benutzerdefinierte Validierungsregel zu verwenden. Zum Beispiel die Regel:

%Vor%

Und dann die Validator-Methode in derselben Modellklasse:

%Vor%

Weitere Informationen: Erstellen Sie Ihre eigene Validierungsregel

    
Nate Barr 02.05.2012 02:21
quelle
0

Wenn Sie eine kompliziertere Logik erstellen möchten, können Szenarien Ihre Anforderungen nicht erfüllen. Dann können Sie die Methode init außer Kraft setzen und die gesamte Logik, die die Validierungsregeln dort definiert, ausführen, indem Sie dem $ validationRules-Array Ergebnisse hinzufügen. Und die Methode in rules () gibt dieses Array zurück. So ähnlich:

%Vor%     
RB_ 26.04.2014 10:25
quelle

Tags und Links