Was bedeutet Call zu einer Member-Funktion auf Boolean und wie zu beheben

8

Ich bin neu mit CakePHP 3. Ich habe einen Controller und ein Modell erstellt, wo ich eine Funktion aufrufen, um alle Benutzer aus der Datenbank zu bekommen. Aber wenn ich den Code unten ausführe, erhalte ich den folgenden Fehler "Aufruf an eine Mitgliedsfunktion get_all_users () auf boolean" .

Was bedeutet dieser Fehler und wie kann ich das beheben?

User.php (Modell)

%Vor%

UsersController.php (Controller)

%Vor%     
CodeWhisperer 04.08.2015, 15:45
quelle

1 Antwort

13

Im Allgemeinen tritt dieser Fehler auf, wenn eine nicht vorhandene Eigenschaft eines Controllers verwendet wird.

Tabellen, die mit dem Controller-Namen übereinstimmen, müssen nicht loaded / sein. eine Eigenschaft manuell auf setzen , aber selbst wenn sie nicht existieren, versucht der Zugriff auf diese Eigenschaft, dass die Controller Magic Getter-Methode aufgerufen wird, die zum verzögerten Laden der Tabellenklasse verwendet wird, die zum Controller gehört. und es gibt false im Fehlerfall zurück, und dort passiert es, dass Sie eine Methode für einen booleschen Wert aufrufen.

Ссылка

In Ihrem Fall besteht das Problem darin, dass User (Singular, für Entitäten) nicht mit der erwarteten Users (Plural für Tabellen) übereinstimmt, daher kann keine passende Tabellenklasse gefunden werden.

Ihre benutzerdefinierte Methode sollte stattdessen in eine Tabellenklasse, die Klasse UsersTable , gehen, auf die Sie dann über

zugreifen sollten %Vor%

Sie möchten vielleicht die Dokumente erneut lesen, Entitäten fragen keine Daten ab (es sei denn, Sie implementieren zum Beispiel das verzögerte Laden), sie stellen ein Dataset dar!

    
ndm 04.08.2015, 16:56
quelle