laravel

Laravel BadMethodCallException Method [find] findes ikke

Laravel BadMethodCallException Method [find] findes ikke

Problem

Jeg har forsøgt at få en veltalende model fra databasen, men fortsætter med at komme ind BadMethodCallExceptionMethod [find] eksisterer ikke.

Her er hvad jeg har prøvet indtil videre:

navneområde-app;
brug Illuminate \ Database \ Eloquent \ Model;
brug App \ Organisation;
klasse Bruger udvider Model
/ **
* Databasetabellen, der bruges af modellen.
*
* @var streng
* /
beskyttet $ table = 'brugere';
/ **
* Attributterne ekskluderet fra modelens JSON-form.
*
* @var matrix
* /
beskyttet $ skjult = array ('password');
offentlige funktionsorganisationer ()

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

Dette er en grundlæggende brugerklasse, der følger med hvert nyt Laravel-projekt. Efter oprettelse af en ny bruger kan jeg tydeligt se, at bruger med ID3 findes i databasen. Men når jeg gør følgende, ender jeg med BadMethodCallException Method [find] findes ikke

klasse bruger udvider BaseController
offentlig funktion getUser ($ id)

$ my_user = Bruger :: find ($ id);
return view ('brugere.index ', array (' user '=> $ my_user));

Mine ruter filruter \ web.php:

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

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

Opløsning

Der er et par problemer med denne implementering, der kan få dig til at modtage BadMethodCallException Method [find] findes ikke undtagelse.

Når du har gjort det, skal du være i stand til at få adgang til din App \ User-model, som du havde tænkt dig.

Yderligere forklaring (kun til uddannelsesformål)

Som du ved, har webudvikling aldrig betydet at være et enmands show. Du kan generelt forvente at samarbejde med andre udviklere omkring 90% af tiden. For at projektet skal lykkes, skal du sørge for, at alle følger generelle kodningsregler.

Reglerne handler om navngivning af konventioner, og jeg forstår, at det kræver en stor indsats at følge med en bestemt navngivningskonvention og potentielt kan spilde meget af holdets tid, indtil alle kan forstå og følge dem. Dette er især hårdt for nye udviklere, der slutter sig til teamet.

Jeg vil foreslå, at du prøver at læse mere af andres kode, før du begynder at skrive din, bare for at få en fornemmelse af de bedste branchepraksis.

Nogle regler er obligatoriske, og nogle overlades til holdet til at beslutte, hvordan de vil gå ind.

Når man ser på problemet ovenfra, vil du bemærke, at alle klasser skal skrives i en StudlyCaps, så UserController og ikke user_controller .

Og dette er et eksempel på en obligatorisk regel, der skal følges.

Nu er et eksempel på, hvad du som et team kunne definere som din interne regel, hvordan du navngiver dine klasser, metoder og variabler.

Hvis det forventes, at et projekt vokser over tid, kan du helt sikkert forvente mange forskellige enheder, der på en eller anden måde inkluderer en bruger, så det er vigtigt, at du ikke kommer med vage navne til dine klasser, metoder og variabler.

Mit personlige tip her er; vær ikke bange for at have en længere klasse eller et metodenavn. Hvis du har brug for en kommentar, der forklarer din metode, kan dit metodenavn sandsynligvis være bedre.

Et eksempel på dette er, at hvis du har brug for at hente brugere fra en database med nogle yderligere betingelser, måske er det brugere over 50 år, så navngiv ikke din metode getUsers . En bedre måde at navngive det på er getAllUsersOver50YearsOld .

Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...