Hallo Leute.
Ich bin gerade dabei eine kleine Social Software zu Übungszwecken und
aus Langerweile zu programmieren.
Soweit alles prima.
Hierbei habe ich 2 Entitäten/Relationen
Member(mID, Name, Vorname, ... )
Friends(fID, mID1, mID2, initiatorID, confirmation)
Soweit habe ich jetzt alles auch implementiert. Nur möchte ich jetzt
gerne dem FriendController klarmachen, dass er 2mal ein "belongsTo"
hat
Leider geht das nicht, da der Arrayindex ja eindeutig sein muss.
Insofern geht ein solches Fragment leider nicht:
var $belongsTo = array(
'Member' => array(
'className' => 'Member',
'foreignKey' => 'mID1'
),
'Member' => array(
'className' => 'Member',
'foreignKey' => 'mID2'
));
Wie kann ich dem Controller jetzt aber klarmachen, dass Friends eben
2mal zu Member gehört. hasMany, hasAndBelongsToMany und hasOne sind ja
auch keine korrekten Beziehungen. Korrekt ist für mein Verständnis nur
"belongsTo" (eben 2mal).
Wozu brauch ich das?
Kurzes Fallbeispiel:
Wenn jetzt Member 1(mID=1) eine Freundschaftseinladung an Member 2
(mID=2) sendet, kommt ein Datensatz in die Relation: Friends(fID=1,
mID1=1, mID=2, initiatorID=1, confirmation=ASKED).
Member 2 sieht das jetzt, dass er einen freund mit dem Status "ASKED"
hat (Initator war Member1). Hierzu lese ich mit dem FriendController
jetzt aus. Und genau hier entsteht das Problem. Ich arbeite momentan
mit dem doppelten belongsTo - also es gilt quasi nur 1mal belongsTo
mit foreignKey=mID2, weil der erste Arrayeintrag überschrieben wird.
Daraus folgt, dass der assoziiierte Member gerade die ID meines Namens
ist von Member 2. Das heisst es kommt eine Anzeige: "Sie haben eine
Freundschaftseinladung von Member 2" (also mir selbst).
Insofern meine Frage in Kurzform:
Wie mache ich dem Controller klar, dass er 2mal mit Member gejoint
werden muss!
in SQL würde es ja heissen
SELECT *
FROM Members AS 'm1'
JOIN Friends ON m1.mID = mID1
JOIN Members AS 'm2' ON mID2 = m2.mID;
Ich danke für eure Hilfe :)
--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe
"CakePHP-de für deutsche CakePHP Entwickler".
Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL
PROTECTED]
Weitere Optionen finden Sie in dieser Gruppe unter
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---