yiiadmin - viele-zu-viele in yii-framework-admin-Oberfläche
Ich bin derzeit die Erweiterung yii-s admin-Erweiterung, yiiadmin.
Was wäre der einfachste Weg, um ein listBox multiple-select-Feld im Modell-erstellen der Ansicht, dass
anzeigen würde viele-zu-viele-Beziehung, zum Beispiel habe ich ein "pivot" - Tabelle, hält diese
Artikel-Kategorie-Beziehungen, zusammen mit Artikel-und Kategorie-Tabellen.
Ich habe bereits diese Beziehungen definiert, die in den Modellen und ich habe sogar geschafft, einige andere
Beziehungen in der Listenansicht, wie Autor.Namen erworben durch author_id Feld in der Artikel-Tabelle.
Jetzt möchte ich die Artikel-Erstellung
Formular mit mehreren select-listBox, die würde speichern in dieser pivot-Tabelle automatisch
Mehrfachauswahl von Kategorien der Artikel gehört.
Diese wäre daher, mehrere Einträge/Zeilen in article_category pivot-Tabelle durch eine
Artikel Vorlage.
Zur gleichen Zeit, die Artikel-Tabelle selbst enthält kein Feld, das bezieht sich auf die Kategorie.
Die pivot-Tabelle daher nimmt Artikel Attribut id und verbindet es mit der Kategorie ist (ein anderes Modell/Tabelle)
id und macht eine Zeile aus.
So, zum Beispiel, habe ich diese Tabellen/Modelle:
Artikel >>> id | Titel | Autor | text
Kategorie >>> id | name | Beschreibung
ArticleCategory >>> id | 'article_id' per | category_id
Und ich will diese bevölkern Dritten pivot-Tabelle mit mehreren Zeilen aus mehreren select-listBox
aus dem Artikel create view/form yiiadmin (oft durch nur eine Vorlage).
Möchte ich auch automatisch Rendern Kategorie.Namen aus der Kategorie-Tabelle in dieser listbox, die entsprechend im Zusammenhang
Kategorie-id-s, so dass ich zeigen kann, die Namen von Kategorie-Tabelle, und durch die Wahl & submission füllen pivot-Tabelle mit
id-s) der Kategorie (daher die Namen nicht)
Ist dies möglich und was wäre der Weg, dies zu tun?
InformationsquelleAutor tonino.j | 2010-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese Erweiterung auf mehr ganz einfach speichern MANY_MANY-Beziehungen:
http://www.yiiframework.com/extension/cadvancedarbehavior/
(die gii-Vorlage-Sammlung nutzt dies und bietet eine CRelated widget erstellen besiedelten Verhältnis Formular-Elemente für Sie, es funktioniert ziemlich gut, ich habe es ausprobiert:
http://www.yiiframework.com/extension/gii-template-collection/)
Dieser jemand behauptet, etwas ähnliches zu tun, mit VIELE-zu-VIELE Beziehungen:
http://www.yiiframework.com/extension/save-relations-ar-behavior/
Auch, es ist ziemlich einfach, um den code selbst schreiben. Einfach füllen Sie eine CHtml::listBox mit den Modellen in Verbindung steht, dann in der Aktion Durchlaufen Sie, und fügen Sie die Beziehungen zu den "pivot" - Tabelle mit einigen einfachen SQL. Oder erstellen Sie ein Modell für die pivot-Tabelle und verwenden Sie regelmäßig speichern() AR-Methoden zu. Sie können dies tun, Sachen in der afterSave () - Modell-Ereignis als auch, anstelle der controller-Aktion.
Wie auch immer, ich weiß, ich kann es manuell machen, wie Sie vorschlagen, aber ich bin tryin zu finden, einfache Möglichkeiten, um zu automatisieren, denn dies ist eine ziemlich grundlegende Aufgabe, die ich denke, ich werde das wahrscheinlich wieder tun. Eins noch - gibt es eine Möglichkeit ein layout für alle views in ein Modul (nicht app), so dass ich nicht brauchen, um die $layout-variable wieder und wieder für alle Modul-views?
Wenn ich verstehe, dein Erster Kommentar Recht, ja, es macht eine POST variable mit dem Namen des zugehörigen Modells. Sie müssen möglicherweise das "hacken" der extension zu ändern. Dann, wenn Sie auf, dass Sie wohl überschreiben setAttributes, um diese POST-vars, so ist es nur ein transparent $model- > attributes = $_POST['Modell'] nennen. Das wäre alles ziemlich glatt. Viel Glück! Zu deiner zweiten Sache: schauen Sie den demo-Blog ein Beispiel für die Erweiterung CController zum hinzufügen eines Standard - $layout. Dann einfach alle Controller im Modul erweitern Sie Ihre neuen Controller mit einem Standard-layout. Ziemlich gut funktioniert. Prost!
InformationsquelleAutor thaddeusmt