laravel

Laravel BadMethodCallException Method [find] finnes ikke

Laravel BadMethodCallException Method [find] finnes ikke

Problem

Jeg har prøvd å få en veltalende modell fra databasen, men fortsetter å komme inn på det BadMethodCallExceptionMethod [finn] eksisterer ikke.

Dette er hva jeg har prøvd så langt:

navneområdet App;
bruk Illuminate \ Database \ Eloquent \ Model;
bruk App \ Organization;
klasse bruker utvider modell
/ **
* Databastabellen som brukes av modellen.
*
* @var streng
* /
beskyttet $ table = 'brukere';
/ **
* Attributtene ekskludert fra modellens JSON-skjema.
*
* @var matrise
* /
beskyttet $ skjult = matrise ('passord');
offentlige funksjonsorganisasjoner ()

returner $ dette-> belongToMany (Organisasjon :: klasse);

Dette er en grunnleggende brukerklasse som følger med hvert nye Laravel-prosjekt. Etter å ha opprettet en ny bruker, kan jeg tydelig se at bruker med ID3 finnes i databasen. Imidlertid når jeg gjør følgende, ender jeg opp med BadMethodCallException Method [find] finnes ikke

klasse bruker utvider BaseController
offentlig funksjon getUser ($ id)

$ my_user = Bruker :: finn ($ id);
return view ('brukere.indeks ', matrise (' bruker '=> $ my_user));

Mine ruter filruter \ web.php:

Rute :: get ('bruker / id', '[e-postbeskyttet]');
Rute :: get ('/', funksjon ()

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

Løsning

Det er noen problemer med denne implementeringen som kan føre til at du mottar BadMethodCallException Method [find] finnes ikke unntak.

Etter å ha gjort det, bør du kunne få tilgang til App \ User-modellen din slik du hadde tenkt deg.

Ytterligere forklaring (kun for pedagogiske formål)

Som du vet har nettutvikling aldri ment å være et enmanns show. Du kan generelt forvente å samarbeide med andre utviklere omtrent 90% av tiden. For at prosjektet skal lykkes, må du sørge for at alle følger generelle kodingsregler.

På reglene vil det dreie seg om å navngi konvensjoner, og jeg forstår at å holde tritt med en bestemt navnekonvensjon krever mye innsats og potensielt kan kaste bort mye av teamets tid til alle kan forstå og følge dem. Dette er spesielt tøft for nye utviklere som kommer til teamet.

Jeg vil foreslå at du prøver å lese mer av andres kode før du begynner å skrive din, bare for å få en følelse av de beste bransjepraksisene.

Noen regler er obligatoriske, og noen overlates til teamet å bestemme hvordan de vil tilnærme seg.

Når du ser på problemet ovenfra, vil du legge merke til at alle klassene skal skrives i en StudlyCaps, så UserController og ikke user_controller .

Og dette er et eksempel på en obligatorisk regel å følge.

Nå, et eksempel på hva du som et team kan definere som din interne regel, er hvordan du navngir klassene, metodene og variablene.

Hvis det forventes at et prosjekt vil vokse over tid, kan du absolutt forvente mange forskjellige enheter som på en eller annen måte inkluderer en bruker, så det er viktig at du ikke kommer med vage navn for klassene dine, metodene og variablene.

Mitt personlige tips her er; ikke vær redd for å ha en lengre klasse eller et metodenavn. Hvis du trenger å ha en kommentar som forklarer metoden din, kan sannsynligvis metodens navn være bedre.

Et eksempel på dette er at hvis du trenger å hente brukere fra en database med noen tilleggsvilkår, er det kanskje brukere over 50 år, så ikke navngi metoden din getUsers . En bedre måte å gi den navn er getAllUsersOver50YearsOld .

Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...
Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...