laravel

Laravel BadMethodCallException Method [find] finns inte

Laravel BadMethodCallException Method [find] finns inte

Problem

Jag har försökt få en Eloquent-modell från databasen men fortsätter att komma in BadMethodCallExceptionMethod [hitta] existerar inte.

Här är vad jag försökt hittills:

namnrymd-app;
använd Illuminate \ Database \ Eloquent \ Model;
använd App \ Organisation;
klass Användare utökar modell
/ **
* Databastabellen som används av modellen.
*
* @var sträng
* /
skyddad $ table = 'användare';
/ **
* Attributen som utesluts från modellens JSON-formulär.
*
* @var array
* /
skyddad $ dold = array ('lösenord');
offentliga funktionsorganisationer ()

returnera $ this-> belongToMany (Organisation :: klass);

Detta är en grundläggande användarklass som kommer med varje nytt Laravel-projekt. Efter att ha skapat en ny användare kan jag tydligt se att användare med ID3 finns i databasen. Men när jag gör följande slutar jag med BadMethodCallException Method [find] finns inte

klassanvändare utökar BaseController
offentlig funktion getUser ($ id)

$ my_user = Användare :: hitta ($ id);
returvy ('användare.index ', array (' user '=> $ my_user));

Mina rutter filrutter \ webb.php:

Rutt :: get ('user / id', '[email protected]');
Rutt :: get ('/', funktion ()

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

Lösning

Det finns några problem med denna implementering som kan få dig att få BadMethodCallException Method [find] finns inte undantag.

När du har gjort det bör du kunna komma åt din App \ User-modell som du tänkt dig.

Ytterligare förklaring (endast för utbildningsändamål)

Som ni vet har webbutveckling aldrig betydt att vara en enmansshow. Du kan i allmänhet förvänta dig att samarbeta med andra utvecklare cirka 90% av tiden. För att projektet ska lyckas måste du se till att alla följer allmänna kodningsregler.

På reglerna kommer det att handla om namngivningskonventioner och jag förstår att det är mycket ansträngning att följa en bestämd namngivningskonvention och potentiellt kan slösa bort mycket av lagets tid tills alla kan förstå och följa dem. Detta är särskilt tufft för nya utvecklare som går med i teamet.

Jag föreslår att du försöker läsa mer av andras kod innan du börjar skriva din, bara för att få en känsla av de bästa branschpraxis.

Vissa regler är obligatoriska och andra lämnas upp till laget för att bestämma hur de vill närma sig.

Om du tittar på frågan ovan kommer du att märka att alla klasser ska skrivas i en StudlyCaps, så UserController och inte user_controller .

Och detta är ett exempel på en obligatorisk regel att följa.

Nu är ett exempel på vad du som team kan definiera som din interna regel hur du namnge dina klasser, metoder och variabler.

Om det förväntas att ett projekt växer över tiden kan du förvänta dig många olika enheter som på ett eller annat sätt innehåller en användare så det är viktigt att du inte kommer med vaga namn för dina klasser, metoder och variabler.

Mitt personliga tips här är; var inte rädd för att ha en längre klass eller ett metodnamn. Om du behöver ha en kommentar som förklarar din metod kan ditt metodnamn förmodligen bli bättre.

Ett exempel på detta är att om du behöver hämta användare från en databas med ytterligare villkor, kanske de är användare över 50 år gamla, så namnge inte din metod getUsers . Ett bättre sätt att namnge det är getAllUsersOver50YearsOld .

Hur man använder GameConqueror Cheat Engine i Linux
Artikeln täcker en guide om hur du använder GameConqueror-fuskmotorn i Linux. Många användare som spelar spel på Windows använder ofta applikationen "...
Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...
Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...