wie an anderer Ecke gerade geschrieben arbeite ich mich gerade in CakePHP ein. Dabei bin ich auf ein seltsames Verhalten gestossen, das mir vielleicht jemand erklären kann.
Ich habe eine Tabelle immobilien und eine Tabelle anhaenge. Eine Immobilie kann n Anhaenge (Bilder) haben. Aus dem bisher gelesenen bin ich davon ausgegangen, das ich eine solche Beziehung mit hasMany bzw. belongsTo im Modell abbilde.
Dies also das Modell für die Tabelle immobilien:
- Code: Alles auswählen
und dies für die Tabelle anhaenge:
- Code: Alles auswählen
class Anhaenge extends AppModel {
var $name = 'Anhaenge';
var $useTable = 'anhaenge';
var $primaryKey = 'objektnummer';
// setup the belongs to relationship
var $belongsTo = array(
'Immobilien'=>array(
'className' => 'Immobilien',
'foreignKey' => 'objektnummer',
'depent' => true
),
'Bestoffer'=>array(
'className' => 'Bestoffer',
'foreignKey' => 'objektnummer',
'depent' => true
)
);
}
Wenn ich damit nun eine Abfrage mache und die Tabelle in der where-Klausel einbeziehe erhalte ich einen Fehler: SQL Error: 1054: Unknown column 'Anhaenge.pfad' in 'where clause'
Im Query wird auch das Modell Anhaenge nicht gezogen.
Natürlich habe ich im Controller über den Paramter $uses jeweils das andere Modell einbezogen.
Setze ich nun in beiden Modellen die Beziehung statt hasMany auf hasOne und im anderen von belongsTo auf hasOne funktioniert alles prima
Kann mir das jemand erklären? Welchen Einsatzbereich hat dann die Beziehung hasMany und belongsTo?
Ciao Thomas