Yii - dynamisch Regeln ändern von controller

Sagen wir mal ich habe ein Produkt, welches eine Farbe. Je nach Produkt-Typ, die Farbe, Feld möglicherweise oder möglicherweise nicht erforderlich.

Wenn die Farbe ist immer erforderlich, würde ich die folgenden in der Produkt-Modell

public function rules()
{
    return array(
        array('colour', 'required')
    );
}

Allerdings möchte ich diese dann dynamisch, je nach Produktart.

Sollte das getan werden, in der Steuerung? Ich könnte mir vorstellen, dass so etwas wie das folgende in der Steuerung:

public function actionOrder() {
    //....
    if ($product->HasColour) {
        //set the colour validation to be required
    } else {
        //set the colour validation to be not required
    }
}

Was ist der beste Weg, dies zu nähern?

Dank

  • Wenn es zu einer bestimmten "producttype", also ein Modell, das getan werden sollte, in das Modell.
  • Aber was du tust in deinem controller ist auch richtig, wenn Ihr das forminput. Also ich denke, man macht keine Fehler hier.
  • Das Modell kennt nicht das Produkt, bis actionOrder() ausgeführt wird, nicht?
  • Was soll ich tun der controller? Wie füge ich die Modell ist in der Regel in den controller?
Schreibe einen Kommentar