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!
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.