Empfehlungen: Erweiterte Suche

2 foreignKey auf 1 Model (belongsTo)

Datenbankobjekte strukturieren und validieren

2 foreignKey auf 1 Model (belongsTo)

Beitragvon Frescha » So 16. Aug 2009, 21:52

Hallo zusammen,
ich bastle zur Zeit an meiner ersten Cake Applikation und bin gerade auf ein Problem gestoßen bei dem ich nicht mehr weiter weiss.
Folgende Stituation: In der Datenbank gibt es eine Tabelle 'Chars' und eine Tabelle 'Talentspecs'. In der Tabelle 'Chars' werden Informationen zu den Charakteren und in der Tabelle 'Talentspecs' Informationen über unterschiedliche Skillungen gespeichert. Jeder Charakter soll eine Haupt- und eine Zweitskillung haben. Daher habe ich in der Tabelle 'Chars' zusätzlich die zwei Felder 'mainspec_id' und 'sndspec_id' angelegt, in der Hoffung, man kann das im Model geschickt mit belongsTo lösen. In der GoogleGroup habe ich auch glücklicherweise etwas in der Art gefunden http://groups.google.ch/group/cake-php/browse_thread/thread/85bf52b7bc383f18.

Zur Zeit sieht mein Char Model so aus:
Code: Alles auswählen
    var $belongsTo = array('User',
                    'MainSpec' => array (
                            'className'=>'Talentspec',
                            'foreignKey'=>'mainspec_id'
                     ),
                    'SndSpec' => array (
                             'className'=>'Talentspec',
                             'foreignKey'=>'sndspec_id'
               )
   
   
   
    );


Mein Talentspec Model

Code: Alles auswählen
    var $hasMany = array ('mainspec'=>array
    ('className'=>'Char','foreignKey'=>'mainspec_id'),
                            'sndspec'=>array
    ('className'=>'Char','foreignKey'=>'sndspec_id'));


Der Fehler liegt, glaube ich, im Char Model. Ich vermute nämlich, dass das Model keine genaue Zuordnung alá var $belongsTo = array('Char') hat.

Wäre klasse, wenn mir jemand einen Tipp in die richtige Richtung geben könnte.
Frescha
 
Beiträge: 15
Registriert: Mi 24. Dez 2008, 16:54
OS: os x

Re: 2 foreignKey auf 1 Model (belongsTo)

Beitragvon Dogo » Mo 17. Aug 2009, 01:11

Ich kann nur raten, da ich mit foreign keys noch nix gemacht habe.

Wenn ich Dein Char model ansehe, warum sind da die beiden Skills foreign? Gehören Die nicht in die selbe Tabelle wie der Char? Ich kann mir vorstellen, dass das andersrum gehört, dass Du von Talentspec aus gesehen den foreign key angeben musst. So war das zumindest bei mir, als ich versucht habe eine Sortierung in die Models zu bekommen. Immer von da, von wo assoziiert wird.

Der Char belongsTo User. Aber die Specs belongen dem Char. Und der Char hasMany Specs. Also so würde ich das denken. Dann hat er vielleicht noch dazu ein Feld, in dem der Hauptspec definiert ist.

Oder in Deinem Code musst Du mal versuchen, was passiert, wenn Du die foreign Keys einfach nur auf "id" setzt oder weglässt. Classname könnte ja schon reichen.

Gruß,

Guido
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: 2 foreignKey auf 1 Model (belongsTo)

Beitragvon Frescha » Mo 17. Aug 2009, 16:22

Ok ich habe die Doku und sämtliche Foren unterschätzt.
unter http://book.cakephp.org/de/view/851/Mul ... same-model findet man nochmals eine erklärung zu dem ganzen Problem.
Frescha
 
Beiträge: 15
Registriert: Mi 24. Dez 2008, 16:54
OS: os x


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron