Empfehlungen: Erweiterte Suche

Nochmal 2 Tabellen verknüpfen

Datenbankobjekte strukturieren und validieren

Re: Nochmal 2 Tabellen verknüpfen

Beitragvon euromark » Mo 8. Jun 2009, 14:56

autsch...

vielleicht backst du dir sie dochmal so (backup der alten) und vergleichst mal mit deinen Files.
hier gibt es (trotz meiner obigen kommentare, die die lösung ja schon präsentieren) scheinbar grundlegende schwierigkeiten, die model-zusammenhänge zu verstehen:

siehe mein beitrag:
in dem fall erkennt die konsole
- post belongsTo author
- author hasMany posts

verglichen mit deinen model-beziehungen (!)

-> auf deutsch:
post GEHÖRT ZU user (hier ist das feld user_id) (=schwache Entität)
user HAT VIELE posts (=starke Entität)
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Nochmal 2 Tabellen verknüpfen

Beitragvon Luckie » Di 9. Jun 2009, 09:28

Also, ich habe es jetzt hinbekommen. Im Post Model muss die Variable $belongsTo gesetzt sein:
Code: Alles auswählen
var $belongsTo = 'User';
. Cake scheint dann den Fremdschlüssel automatisch am Namen des Feldes zu erkennen, wenn er der Namenskonvention <Model>_id folgt. Desweiteren ist im zugehörigen View dann auch die Tabelle users bekannt, so dass deren Feldinhalte ausgegeben werden können. Die Variable $hasOne im User Model muss dann nicht mehr gesetzt werden.

$belongsTo sorgt für den Left Join im Query und
Code: Alles auswählen

<?php foreach($posts as $post):?>
    <tr>
      <td><?php echo $post['User']['username'];?></td>
 

Wählt dann aus der Ergebnismenge aus der Tabelle User den Wert des Feldes username aus.

Habe ich das so alles richtig verstanden?
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP

Vorherige

Zurück zu Models

Wer ist online?

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