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 .

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...