public function appleJuiceBuyer( $baseform ){
return apple::model()->with(array('apple', 'juice'))->find('apple.baseform=?', array( $baseform ) );
}
Mein zubehebender Fehler
Ich vermute das mein Fehler darin liegt, dass ich in der Relationstabelle mit "juice" eine MANY-MANY Beziehung Apple <-> Buyer herstelle und nicht Apple -> Juice -> Buyer
Für eine Hilfe bin ich schon jetzt sehr dankbar.!!!
Ich hab mir jetzt nur mal das Diagramm angesehen und nicht den Code und verstehe nur Bahnhof…
Also ein Apfel kann in beliebig vielen sagen wir mal Flaschen (oder welche Einheit auch immer) vorkommen. Eine Flasche enthält beliebig viele Äpfel. <- Das ist bis jetzt noch theoretisch möglich, wenn auch irgendwie seltsam.
Eine Flasche kann von beliebig vielen Käufern gekauft werden und ein Käufer kann beliebig viele Flaschen kaufen. <- Der erste Punkt ist auch sehr seltsam.
Vielleicht erläuterst du ein wenig, was du überhaupt vor hast?!
Na dann sag das doch auch! Das hat mich jetzt wieder mindestens eine Tasse Kaffee gekostet!
Ok, also fangen wir mal vorne an.
Das Model apple hat wohl keine Relation die apple heißt, es sein denn, es besteht eine Relation zu sich selbst. Aber das ist auch nicht so wichtig.
apple hat eine Many-Many-Relation zu juice. Das war es. Ende aus.
juice hat eine Many-Many-Relation zu apple und zu buyer. Ist der Coolste von allen.
buyer hat eine Many-Many-Relation zu juice, nicht aber zu dem blöden Apfel.
Das Ganze nun in einem Rutsch abzufragen wird wohl etwas tricky.
Von der Seite des Apfels aus betrachtet: 1 Apfel kommt in 17 Flaschen saft vor, easy: $myApple->juice liefert mir nun 17 records. Aber wenn ich jetzt auch noch die Käufer meines Apfels kennen möchte, heißt das, dass ich für jede der 17 Flaschen nochmals zwischen 0 und 1736436475832 (oder so ^^) Käufer haben kann.
In SQL hätte ich schon 'ne Idee, aber so…
Um ehrlich zu sein habe ich gerade auch nicht die Muße mir Beispieltabellen und eine Anwendung zu stricken, um das mal mit Yii zu evaluieren. Wenn du mir sowas machst und zur Verfügung stellst, werde ich es ausprobieren.
Die wichtigste Frage ist aber noch: was willst du am Ende überhaupt rauskriegen bei dieser Abfrage? Quasi alle Käufer mit der jeweiligen Flasche und dem einen Apfel, der sich darauf verteilt (im übertragenen Sinne)?