Empfehlungen: Erweiterte Suche

pagniate mit images->keywords filtern

Daten auslesen, verarbeiten und den Views übergeben

pagniate mit images->keywords filtern

Beitragvon hansen » Di 3. Aug 2010, 20:03

Hallo,

Ich habe gerade mit cake php angefangen und bin bis jetzt absolut begeistert wie einfach man damit Sachen machen kann.
Nun stecke ich aber bei einem Problem fest.
Ich habe ein Image Tabelle und ein Keyword Tabelle. Diese stehen in einer many to many Beziehung. Aus diesem Grund habe ich in der DB auch eine Zwischentabelle.
Ich habe nun zwei models Image und Keyword. Beide haben ein $hasAndBelongsToMany.
Soweit funktioniert das auch wunderbar.
Ich habe nun im Image Controller eine Funktion images:
Code: Alles auswählen

    function images()
    {  
        $this->Image->recursive = 0;
        $filters = array("released=1");

        $this->set('images', $this->paginate($filters ));
    }
 


Dies funktioniert auch wunderbar. Im View gebe ich nun die Keywords als link aus. Ich will nun das der Benutzer auf die Keywords klicken kann und dann nur die Fotos die dieses Keyword haben sieht.
Dazu habe ich die Images Funktion wie folgt angepasst:

Code: Alles auswählen

    function images()
    {  
        $this->Image->recursive = 0;
        $filters = array("released=1");
       
        $this->set('keywords', $this->Image->Keyword->find('list'));
       
        $kw = $this->params['named']['keyword'];
        if ($kw != '')
        {
            $this->set('Keywords');
            $filters = array('released=1', 'Keyword.german=' .$kw);
        }
        $this->set('images', $this->paginate($filters ));
    }
 


Leider wird in der sql abfrage keine join gemacht und Keyword ist leider nicht bekannt.

Kann mir hier jemand weiterhelfen, wie diese einfache und "richtig" zu lösen ist?

Vielen Dank und schöne Grüsse,

Hannes
hansen
 
Beiträge: 3
Registriert: Di 3. Aug 2010, 19:52

Re: pagniate mit images->keywords filtern

Beitragvon Flo » Mi 4. Aug 2010, 07:27

auch wenns English ist, das Book hilft bei so grundlegenden Dingen eigentlich immer weiter.
http://book.cakephp.org/view/1030/Compl ... Conditions

Dein Fehler dürfte darin liegen das du den key und den wert als wert eines Arrays hast.
muss aber so ein (erstes ist wie =, das zweite wie LIKE %%)
Code: Alles auswählen

<?php
$filter = array('Model.fieldname' => 'whatever','Model.fieldname LIKE' => '%'.$whatever.'%');
?>
 
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast