Empfehlungen: Erweiterte Suche

Model ansprechen in Component

Klassen zur Datenverarbeitung in den Controllern (DRY)

Model ansprechen in Component

Beitragvon wolgensinger » Mo 30. Jan 2012, 21:05

Hallo zusammen

Ich möchte in einer Component ein Datensatz aus einem Modell empfangen via SQL-Abfrage. Die Component funktioniert an sich, jedoch die Abfrage nicht.
Die Fehlermeldung ist folgende:

Notice (8): Undefined property: MatchComponent::$Friend [APP/Controller/Component/MatchComponent.php, line 40]
Fatal error: Call to a member function query() on a non-object in /home/dateyour/www/dateyourfriend.com/cake2/app/Controller/Component/MatchComponent.php on line 40

(Line 40 ist die Linie beginnend mit $cnt)

Code: Alles auswählen
function doComplexOperation($email) {
       
        $cnt = $this->Friend->query("SELECT * FROM `friends` WHERE `email` = '".$email."' LIMIT 1;");
        /*
        $cnt = $this->Friend->find('count', array(
        'conditions' => array('user_id' => $email)
        ));
        */

        $ival = 'UserID = '.AuthComponent::user('id').'<br />Friend Email = '.$email.'<br />Count = '.$cnt;
       
        return $ival;
        }


Muss ich das Model "Friends" irgendwo starten ausser im Controller?
wolgensinger
 
Beiträge: 1
Registriert: Mo 30. Jan 2012, 20:52

Re: Model ansprechen in Component

Beitragvon Jörg » Mo 30. Jan 2012, 21:26

Hallo,

versuche mal in deiner Component das Model zu laden.
Entweder über ein "var $uses = array()" oder über das Registrieren der Model-Klasse.

Code: Alles auswählen

$this->Friend = ClassRegistry::init('Friend');
$cnt = $this->Friend->query("SELECT * FROM `friends` WHERE `email` = '".$email."' LIMIT 1;");
 
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Model ansprechen in Component

Beitragvon euromark » Mo 30. Jan 2012, 23:36

jörgs antwort ist natürlich richtig

aber ich sollte vielleicht noch anmerken, dass html in einer component (und damit dem C controller level) eigentlich nich so schön ist.
wenns geht, eher im V view level lassen.
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron