Empfehlungen: Erweiterte Suche

HABTM abfrage

Daten auslesen, verarbeiten und den Views übergeben

HABTM abfrage

Beitragvon phyrexianer » Fr 28. Mai 2010, 15:02

Hi, irgendwie stehe ich auf dem Schlauch

ich habe ein Model A und ein Model B diese sind über HABTM miteinander verknüpft. jetzt will ich eine Liste von "B.name WHERE A.index = 1"

wie sieht denn so eine Abfrage im Controller aus ????
Code: Alles auswählen
$ields = $this->ModelA->ModelB->find('list','conditions'=>array('ModelA.index'=1));


da bekomme ich die Meldung dass ModelA.index nicht exestiert bzw. er diese Spalte nicht findet.
phyrexianer
 
Beiträge: 30
Registriert: Fr 19. Jun 2009, 10:52

Re: HABTM abfrage

Beitragvon Jörg » Di 8. Jun 2010, 21:46

Hi,

drehe doch eine Abfrage der Models mal um und mache ein on-the-fly-Bind auf dein aktuelles Model. (falls nicht schon im Model fest als var deklariert).

$this->ModelB->bindModel(....array('hasAndBelongsToMany' => array('ModelA-Table));

Dann sollte sich Cake zumindest schon mal die Relation alleine holen.
Notfalls musst du es über zwei einzelne Model-Abfragen durchführen.
HABTM und Conditions sind nicht so wirklich leicht, denn es wird immer ein zusätzlicher Query ausgeführt,
um die IN() in der Clause zu schreiben, welche Datensätze eigentlich betroffen sind.

Tipp zu HABTM und on-the-fly Binds:
http://book.cakephp.org/view/86/Creatin ... on-the-Fly
http://book.cakephp.org/view/83/hasAndB ... Many-HABTM
Jörg
 
Beiträge: 105
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast