Ich baue eine MMA (mixed martial arts) Website mit CakePHP. Ich habe eine fights
Tabelle in meiner Datenbank, die in ihrer einfachsten Form drei Spalten hat: id
, fighter_a
und fighter_b
.
Ich habe Schwierigkeiten, mir vorzustellen, welche Art von Beziehung mein Fight
Modell hätte mit meinem Fighter
Modul. Liege ich richtig in der Annahme fighter_a
et fighter_b
wären zwei hasOne
Beziehungen?
Ich habe dies mit dem Folgenden in meinem Fight
modelo:
<?php
class Fight extends AppModel {
public $name = 'Fight';
public $hasOne = array(
'FighterA' => array(
'className' => 'Fighter',
'foreignKey' => 'fighter_a'
),
'FighterB' => array(
'className' => 'Fighter',
'foreignKey' => 'fighter_b'
)
);
}
Und dann dies in meinem Fighter
modelo:
<?php
class Fighter extends AppModel {
public $name = 'Fighter';
public $hasMany = array(
'Fight'
);
}
Aber dies warf einen Fehler in meiner CakePHP-Anwendung beim Aufruf $this->Fight->findById($id)
(wobei $id
war die ID eines Kämpfers):
Fehler: SQLSTATE[42S22]: Spalte nicht gefunden: 1054 Unbekannte Spalte 'Fight.fighter_id' in 'field list'
Wie kann ich meine Modelle so verknüpfen, dass ich alle Kämpfe, die ein Kämpfer bestritten hat, aufrufen kann?