Speichern von Beziehungen in yii2-Formularen - Wie vermeidet man Doppelungen in Attributen?

9

Ich habe Schülermodell (ID, Name, Schul_ID) und Schulmodell (ID, Name, ...) Das Beziehungsschema ist: Schule hat viele Schüler, Schüler können nur eine Schule haben.

%Vor%

Nun möchte ich Kontrollkästchen für jeden Schüler auf dem School create Formular anzeigen:

%Vor%

($ model ist School instance. Der Einfachheit halber nehmen wir an, dass es nicht viele Studenten gibt - also reicht die Checkbox-Kontrolle aus)

Nun, wenn ich eine Validierungsregel hinzufügen möchte, um maximal 5 Studenten zu erlauben (mit der School :: rules () Methode) - bekomme ich die Formularsendung "Versuch, schreibgeschützte Attributschüler einzurichten"

Okay, das bedeutet, dass AR-Relationen schreibgeschützte Attribute in Modellen sind.

Aber wie kann ich Yii2 activeForm und Validierungen mit Hilfe von Regeln verwenden, ohne ein falsches Attribut (student_ids) zu erzeugen, das nicht in db gespeichert wird und nur für Validierungszwecke verwendet wird?

Gibt es hier einen "richtigen" Weg? Danke!

    
Anton Sidashin 21.04.2014, 11:45
quelle

1 Antwort

1

Wenn ich es richtig verstehe, was Sie brauchen, ist, dass Sie nur 5 Schüler-Checkboxen im Schulmodell sehen möchten.

In diesem Fall müssen Sie die Validierung möglicherweise nicht durchführen.

Definieren Sie einfach eine andere Beziehung wie:

%Vor%

Damit Sie jedes Mal, wenn Sie die Schülerliste mit dieser Funktion erhalten, nur die ersten fünf Einträge erhalten.

    
Chen Sturmweizen 30.08.2014 05:53
quelle

Tags und Links