CakePHP: Hilfe gesucht. Problem: Model mit 2 mal belongsTo

mille

Erfahrenes Mitglied
Hey, ich hoffe ihr könnt mir helfen.
Ich hoffe es sehr, weil die Google Group is doch etwas schwach frequentiert - da steht auch die Frage drin. Dahier hier auch der link. Link zu google Group

Hier versuche ich die Frage mal etwas kürzer und allgemeiner zu fassen.

Ich habe 2 Relationen Members und Friends, wobei Friends zwei Fremdschlüssel zu Member aufweist - die Entität Members ist also, modellierungstechnisch gesprochen, zwei mal mit der Entitä Friends verbunden und hat dabei jeweils die Rolle "Freund von".

Beispiel:
_Members
mID|Vorname|Nachname
1|Hans|Maier
2|Chrstian|Beyer
3|Thomas|Mueller

_Friends
fID|mID1|mID2|confirmation
1|1|2|ASKED
2|1|3|FRIENDS

Das heißt also, dass Hans Maier (ID=1) ein Freund von Thomas Müller ist (ID=3) und das Hans Maier, eine Freundschaft zu Christian Beyer(ID=2) haben möchte (confirmation=ASKED).
Wie stele ich das nun in CakePHP-Model FriendModel dar?

PHP:
// erster Gedanke
var $belongsTo = array(
     'Member' => array(
           'class' => 'Member',
           'foreignKey' => 'mID1'
     ),
     'Member' => array(
           'class' => 'Member',
           'foreignKey' => 'mID2'
     ),
)

Der Gedanke ist aber falsch - logischerweise, denn der Index Member wird einfach überschrieben.
Dann hab ich überlegt... und kam auf hasMany, aber auch das war nicht des Rätsels Lösung.
Prinzipiell muss ich also (irgendwie) dem Modell klarmachen, dass es zwei mal zu Member (gehoert)/(belongsTo).

Warum?
Klar, wenn ich einen Aufruf mache
$this->Friend->findAllByconfirmation(ASKED)
möchte ich gerne im Ergebnis Array zwei mal auf Member zugreifen können, einmal auf das Member hinter mID1 und das andere mal auf das Member hinter mID2.

Ich hoffe hier auf Hilfe zu stoßen.
Danke :)

P.S.: Vielleicht ist auch ein Unterforum für CakePHP/PHP Frameworks praktisch?
 
Ich hab die Lösung

PHP:
// Rollenverteilung
var $belongsTo = array(
     'Member1' => array(
           'class' => 'Member',
           'foreignKey' => 'mID1'
     ),
     'Member2' => array(
           'class' => 'Member',
           'foreignKey' => 'mID2'
     ),
)
 
Zurück