Ich habe zwei Tabellen Siteaddress
und Jobsheet
genannt. In der Tabelle Jobsheet
befindet sich ein Feld mit der Bezeichnung siteaddress
, das die ID der in der Tabelle Siteaddress
gespeicherten Site-Adresse enthält.Verknüpfen Sie zwei Tabellen mit angegebenen Feldern in CakePHP
Das Problem, das ich habe, ist, dass, während ich die in der Steuerung verbinden mache, schließt sich CakePHP die Siteaddress
Tabelle in die Jobsheet
Tabelle mit den id
Felder in beiden Tabellen. Dies führt zu einem Problem, da es bisher nur einen Datensatz in der Tabelle Siteaddress
und mehrere Datensätze in der Tabelle Jobsheet
gibt.
Was ich tun muss, ist CakePHP zu sagen Jobsheet.siteaddress
zu Siteaddress.id
anstelle der Art, wie es im Moment funktioniert.
Wie kann ich das tun?
Unten sind die Beziehung Code aus der Jobsheet
Modelldatei:
public $hasOne = array(
'Company' => array(
'className' => 'Company',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Siteaddress' => array(
'className' => 'Siteaddress',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
Prost!
Ich habe es auf 'siteaddress' gesetzt, aber es kommt dann mit dem Fehler zurück:' Spalte nicht gefunden: 1054 Unbekannte Spalte 'Siteaddress.siteadresse' in 'on clause'' – mickburkejnr
Ah, Sie haben Recht. In diesem Fall ist 'hasOne' möglicherweise nicht die gesuchte Assoziation. Das Definieren einer '$ belongTo'-Verknüpfung mit der' siteaddress' 'foreignKey' könnte eine bessere Option sein. – mensch
Die Verwendung von '$ belongTo' hat funktioniert. Danke vielmals! – mickburkejnr