Empfehlungen: Erweiterte Suche

Rückwärtige Assoziation oder wie?

Datenbankobjekte strukturieren und validieren

Rückwärtige Assoziation oder wie?

Beitragvon Herbomat » Mo 5. Sep 2011, 13:19

Hallo liebe Leute,

ich habe eine Contact-, Project-, Todo-, und Timetabelle.

Diese sind hirarchisch miteinander verbunden, also: ein Contact kann mehrere Projects haben, ein Project mehrere Todos haben, ein Todo kann mehrere Times haben.

Befinde ich mich nun im Timescontroller z.B. in der Methode edit, so möchte ich hier im View 3 Selectboxen gefüllt haben. Eine mit Kontakten, eine mit Projekten und eine mit Todos. Projekte und Todos werden automatisch selektiert. Nur wie komme ich an die zum Projekt dazuhegörenden contact_id?!?

Das Data Array aus $this->Time->read(null,$id) hat nur diese Struktur:
Code: Alles auswählen
Array
(
    [Time] => Array
        (
            [id] => 49
            [description] => testtest
            [start] => 2011-09-05 06:00:00
            [end] => 2011-09-05 12:00:00
            [todo_id] => 48
            [created] => 2011-09-05 06:49:00
        )

    [Todo] => Array
        (
            [id] => 48
            [name] => test
            [description] => test
            [project_id] => 9
            [service_id] => 1
            [begin] =>
            [end] =>
            [created] => 2011-09-05 06:17:46
            [modified] => 2011-09-05 06:28:48
            [todo_period] =>
            [todo_end] =>
        )
)


Ich würde gerne sowas haben....

Code: Alles auswählen
   [Todo] => Array
        (
            [id] => 48
            [name] => test
            [description] => test
            [project_id] => Array
                                         (
                                               ...  
                                               [name] => testproject
                                               [contact_id] => Array
                                                                       (
                                                                            ...
                                                                            [name] => peter
                                                                            ...  
                                                                       )
                                               ...
                                         )
            [service_id] => 1
            [begin] =>
            [end] =>
            [created] => 2011-09-05 06:17:46
            [modified] => 2011-09-05 06:28:48
            [todo_period] =>
            [todo_end] =>
        )



Ich habe in den Modellen die Beziehungen mit $hasMany und $belongsTo gekennzeichnet.

Was muss ich tun, damit er mit das komplette Datenarray auspuckt?

Danke im Voraus.
Viele Grüße
Herb
Herbomat
 
Beiträge: 6
Registriert: Mo 14. Sep 2009, 20:25

Re: Rückwärtige Assoziation oder wie?

Beitragvon mbrod » Di 6. Sep 2011, 18:10

Im Controller vor der Abfrage die "Recursive-Stufe" hochsetzen:
Code: Alles auswählen
$this->Time->recursive = 2;
$this->Time->read(null,$id)

Siehe auch http://book.cakephp.org/view/1063/recursive
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast