laravel

Laravel BadMethodCallException Methode [find] existiert nicht

Laravel BadMethodCallException Methode [find] existiert nicht

Problem

Ich habe versucht, ein eloquent-Modell aus der Datenbank abzurufen, komme aber immer wieder in BadMethodCallExceptionMethod[finden] ist nicht vorhanden.

Folgendes habe ich bisher versucht:

Namensraum-App;
Verwenden Sie Illuminate\Database\Eloquent\Model;
App\Organisation verwenden;
Klasse Benutzer erweitert Modell
/**
* Die vom Modell verwendete Datenbanktabelle.
*
* @var-String
*/
geschützt $table = 'Benutzer';
/**
* Die aus dem JSON-Formular des Modells ausgeschlossenen Attribute.
*
* @var-Array
*/
geschützt $hidden = array('password');
Organisationen mit öffentlichen Funktionen ()

return $this->belongsToMany(Organization::class);

Dies ist eine grundlegende Benutzerklasse, die mit jedem neuen Laravel-Projekt geliefert wird. Nachdem ich einen neuen Benutzer angelegt habe, kann ich deutlich sehen, dass ein Benutzer mit ID3 in der Datenbank vorhanden ist. Wenn ich jedoch Folgendes tue, lande ich bei der BadMethodCallException Methode [find] existiert nicht

Klasse Benutzer erweitert BaseController
öffentliche Funktion getUser($id)

$my_user = Benutzer::find($id);
Ansicht zurück('Benutzer.index', array('user' => $my_user));

Meine Routen Datei routen\web.php:

Route::get('user/id', '[email protected]');
Route::get('/', function()

Return View::make('test');
);

Lösung

Es gibt einige Probleme mit dieser Implementierung, die dazu führen können, dass Sie . empfangen BadMethodCallException Methode [find] existiert nicht Ausnahme.

Danach sollten Sie wie beabsichtigt auf Ihr App\User-Modell zugreifen können.

Weitere Erläuterung (nur für Bildungszwecke)

Wie Sie wissen, war Webentwicklung nie eine One-Man-Show. Sie können im Allgemeinen davon ausgehen, dass Sie in etwa 90% der Zeit mit anderen Entwicklern zusammenarbeiten. Damit das Projekt erfolgreich ist, müssen Sie sicherstellen, dass sich alle an die allgemeinen Codierungsregeln halten.

Eine der Regeln wird sich um Namenskonventionen drehen und ich verstehe, dass das Einhalten einer bestimmten Namenskonvention viel Aufwand erfordert und möglicherweise viel Zeit des Teams verschwenden kann, bis jeder sie verstehen und befolgen kann. Dies ist besonders schwierig für neue Entwickler, die dem Team beitreten.

Ich würde vorschlagen, dass Sie versuchen, mehr Code anderer Leute zu lesen, bevor Sie anfangen, Ihren eigenen zu schreiben, nur um ein Gefühl für die besten Branchenpraktiken zu bekommen.

Einige Regeln sind obligatorisch und andere überlassen es dem Team, zu entscheiden, wie es vorgehen möchte.

Wenn Sie sich das Problem von oben ansehen, werden Sie feststellen, dass alle Klassen in StudlyCaps geschrieben werden sollten, also UserController und nicht user_controller .

Und dies ist ein Beispiel für eine obligatorische Regel, die zu befolgen ist.

Ein Beispiel dafür, was Sie als Team als Ihre interne Regel definieren könnten, ist die Benennung Ihrer Klassen, Methoden und Variablen.

Wenn von einem Projekt erwartet wird, dass es im Laufe der Zeit wächst, können Sie sicherlich viele verschiedene Entitäten erwarten, die auf die eine oder andere Weise einen Benutzer enthalten.

Mein persönlicher Tipp hier ist; Haben Sie keine Angst, einen längeren Klassen- oder Methodennamen zu haben. Wenn Sie einen Kommentar benötigen, der Ihre Methode erklärt, kann Ihr Methodenname wahrscheinlich besser sein.

Ein Beispiel dafür ist, dass Sie, wenn Sie Benutzer aus einer Datenbank mit einer zusätzlichen Bedingung abrufen müssen, möglicherweise Benutzer über 50 Jahre alt sind, Ihre Methode nicht getUsers nennen . Eine bessere Möglichkeit, es zu benennen, ist getAllUsersOver50YearsOld .

So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...
Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...