HABTM Verknüpfungsangaben nur für ein Model?

Datenbankobjekte strukturieren und validieren

HABTM Verknüpfungsangaben nur für ein Model?

Beitragvon ckay am Sa 5. Dez 2009, 12:10

Hallo,

ich bin erst seit Kurzem mit Cake unterwegs und kam eigentlich bisher klar. Zumindest bis ich mich an HABTM heran gewagt habe. Ich habe folgendes Problem:
Ich habe zwei Tabellen 'events' und 'artists'. An jeder Veranstaltung ('event') nehmen mehrere Künstler ('artists') teil. Und jeder 'artist' nimmt an mehreren 'events' teil. Ich habe die beiden Tabellen über eine HABTM Verknüpfungstabelle verbunden. Das funktioniert auch einwandfrei. Trage ich über add einen 'event' ein, bekomme ich ein Multiple Select Field mit 'artists' mit dem ich der Veranstaltung mehrere Künstler zuweisen kann. Rufe ich jetzt die index-Funktion von 'event' auf, sieht man eine Liste mit 'events' und den jeweils dazu gehörenden 'artists'.

Nun mein eigentliches Problem: Wenn ich nun die index-Funktion von 'artists' aufrufe, bekomme ich zwar eine Liste aller 'artists', aber nicht die dazu gehörenden 'events'. Ich muss immer noch einmal über die add/edit-Funktion des 'artist' den 'event' zuweisen, damit er auch angezeigt wird.
Ich möchte aber auf jeden Fall ein Multiple Select Field 'artists' in der add/edit-Funktion von 'events' haben. Bei der add/edit-Funktion von 'artists' möchte ich eigentlich nicht unbedingt die 'events' zuordnen.

Ich denke, ich mache einen logischen Fehler. Eigentlich greifen beide Tabellen auf die Verknüpfungstabelle zu. Damit steht beiden Models im Grunde die gleiche Information zu. Sollte es eigentlich nicht reichen, wenn ich die Verknüpfung über eine der beiden add/edit-Funktionen eingebe, damit sie beiden zur Verfügung steht? Oder müsste eine der beiden eine 'hasMany'-Relation sein, damit es funktioniert?

Ich hoffe, ich habe mich verständlich ausgedrückt. Vielleicht hat jemand eine Idee...

Grß ckay
ckay
 
Beiträge: 7
Registriert: Sa 5. Dez 2009, 11:45
CakePHP-Version: 1.2.5
OS: MacOS X 10.5.5

Re: HABTM Verknüpfungsangaben nur für ein Model?

Beitragvon euromark am Sa 5. Dez 2009, 13:01

$this->Model->recursive = 1;
sollte es tun bei HasMany und HABTM

falls da 0 steht, ist das nur für BelongsTo Relationen
-1 für keine Joins (nur die eigenen Datensätze)

und 2 sollte man eigentlich nie einsetzen
sondern dann manuell den join zusammensetzen (z.b. mit containable behavior)
euromark
 
Beiträge: 397
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 1.2.4
OS: Windows

Re: HABTM Verknüpfungsangaben nur für ein Model?

Beitragvon ckay am Sa 5. Dez 2009, 13:47

Vielen Dank!!!

Ich hatte zwar rekursiv im index gesucht, aber nicht im view. Geht natürlich einwandfrei.

Gruß ckay
ckay
 
Beiträge: 7
Registriert: Sa 5. Dez 2009, 11:45
CakePHP-Version: 1.2.5
OS: MacOS X 10.5.5

Re: HABTM Verknüpfungsangaben nur für ein Model?

Beitragvon Dogo am Mo 15. Feb 2010, 16:23

Hm... vielleicht ist das genau das, wonach ich suche :)
Ich habe User, die Nachrichten haben, die wiederum Usern gehören. Also in etwa so wie bei Deinen Events und Artists. Ich probier mal aus...
Benutzeravatar
Dogo
 
Beiträge: 54
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast

cron