Wie fügen wir ein Limit für Viele-zu-Viele-Beziehung hinzu. Nach dem Beispiel in der Dokumentation sagen wir, wir haben 3 Tabellen post
, category
und post_category
. Nehmen wir an, ich habe eine Liste von Beiträgen und bei jedem Beitrag die Möglichkeit, eine Kategorie auszuwählen.Add-Limit für Viele-zu-Viele-Beziehung hinzufügen
Wie kann ich die Beziehung "begrenzen", so dass es nicht mehr als 5 Kategorien pro Post und 100 Posts pro Kategorie geben kann?
Ich habe es geschafft, dies mit einer Prüfung zu tun, wenn count(post->books) < 5
auf die Aktion von post_category
Controller erstellen, aber bin auf der Suche nach einer Möglichkeit, es zu tun mehr Yii freundlich, wenn das existiert.
Arbeiten an Yii 1.1.14.
Was meinst du damit: Dies wird einen Fehler geben beim Versuch, eine neue Kategorie zu einem Beitrag, der bereits 4 Kategorien hat, zu erstellen? Ich erstelle unabhängig Beiträge und Kategorien. Sollte ich dann die Validierungsregel im PostCategory-Modell nicht hinzufügen? –
Ich habe Ihre Modelle nicht gesehen, aber was ich aus der Frage verstanden habe, ist, dass Sie eine Eins-zu-viele-Beziehung zwischen Post und Kategorie haben. Ich folgerte daraus, dass Sie ein Feld post_id oder was auch immer in der Kategorie haben müssen, und nicht ein separates Beziehungsmodell. Wenn Sie jedoch ein separates Modell haben, PostCategory, das die beiden verbindet, dann können Sie es auch dort hinzufügen. Beide werden funktionieren, je nachdem wo du den Fehler bekommen willst und wie du deine Modelle verwendest :) – mrateb
Nun, ich denke ich habe alles richtig in meiner ersten Frage geschrieben. Ich habe eine VIELE VIELE Beziehung zwischen Post und Kategorie, was zu einer PostCategory-Tabelle in der Mitte führt. –