Error: Call to a member function find() on a non-object in cakephp controller
Ich bin neu bei cakephp und habe versucht, zu erzeugen von CRUD-Operationen mit dem Konsolen-tool. Es funktioniert gut, außer für eine Tabelle (die größte).
Wenn Sie versuchen, um ein neues element hinzuzufügen, gibt es:
Error: Call to a member function find() on a non-object
Datei: C:\wamp\www\cakephp\app\Controller\ChantiersController.php
Line: 50
Hier ist die Linie 50 und darüber hinaus:
$programs = $this->Chantier->Program->find('list');
$etats = $this->Chantier->Etat->find('list');
$types = $this->Chantier->Type->find('list');
$champsLibres = $this->Chantier->ChampsLibre->find('list');
$feuillesDeRoutes = $this->Chantier->FeuillesDeRoute->find('list');
$directionsPilotes = $this->Chantier->DirectionsPilote->find('list');
$this->set(compact('programs', 'etats', 'types', 'champsLibres',
'feuillesDeRoutes', 'directionsPilotes'));
Zeig bitte die Ausgabe von
können Sie include-Zeile 49 nur für den Fall?
var_dump($this->Chantier->Program);
können Sie include-Zeile 49 nur für den Fall?
InformationsquelleAutor L. Sanna | 2012-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
TLDR /Antwort:
Können Sie entweder fix den Verein, oder laden Sie das Modell, und entfernen Sie die durch-rufen (die
->Chantier
Teil:Details /Erläuterung:
Dieser Fehler im Grunde bedeutet, dass Sie versuchen, zu nennen
find()
auf ein Modell geladen ist nicht in den controller.Standardmäßig der Controller-Modell geladen wird. Und, wie du tust, können Sie ein Modell DURCH ein Modell geladen. (wenn die Assoziationen richtig gesetzt).
Beispiel:
Um dies zu beheben, laden Sie einfach das Modell, bevor versucht, es zu benutzen:
In deinem Fall, da es aussieht wie Sie durch Assoziationen mit der
Chantier
Modell zu finden, das durch andere Modelle, ist es wahrscheinlich, dass die Assoziation zwischen den beiden Modellen ist nicht korrekt.Ohne zu sehen, Ihre Assoziationen, es ist ganz unmöglich. Vielleicht möchten starten Sie eine neue Frage "- Modell Vereinigungen, die nicht arbeiten" oder so ähnlich.
InformationsquelleAutor Dave
Wenn Sie nicht wollen, verwenden Sie die loadModel () - Funktion, dann können Sie festlegen,
Können Sie auch noch andere Modell-Namen auch in das array
InformationsquelleAutor Shrish Shrivastava