laravel

Metoda Laravel BadMethodCallException [najti] ne obstaja

Metoda Laravel BadMethodCallException [najti] ne obstaja

Težava

Poskušal sem pridobiti model Zgovorna iz baze podatkov, vendar še naprej vstopajo BadMethodCallExceptionMethod [najti] ne obstaja.

Tukaj sem poskusil do zdaj:

App za imenski prostor;
uporabite Illuminate \ Database \ Eloquent \ Model;
uporaba aplikacije \ Organizacija;
razred Uporabnik razširja Model
/ **
* Tabela zbirke podatkov, ki jo uporablja model.
*
* @var niz
* /
zaščitena $ table = 'uporabniki';
/ **
* Atributi so izključeni iz obrazca JSON modela.
*
* matrika @var
* /
zaščiten $ hidden = array ('geslo');
organizacije javne funkcije ()

vrni $ this-> pripadaToMany (Organizacija :: razred);

To je osnovni uporabniški razred, ki je priložen vsakemu novemu projektu Laravel. Po ustvarjanju novega uporabnika jasno vidim, da v bazi podatkov obstaja uporabnik z ID3. Ko pa naredim naslednje, na koncu dobim Metoda BadMethodCallException [najti] ne obstaja

razred Uporabnik razširja BaseController
javna funkcija getUser ($ id)

$ my_user = Uporabnik :: find ($ id);
vrni pogled ('uporabniki.index ', array (' user '=> $ my_user));

Datoteke poti moje poti \ splet.php:

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

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

Rešitev

Pri tej izvedbi je nekaj težav, zaradi katerih boste morda prejeli Metoda BadMethodCallException [najti] ne obstaja izjema.

Po tem bi morali imeti dostop do modela App \ User, kot ste želeli.

Nadaljnja razlaga (samo za izobraževalne namene)

Kot veste, spletni razvoj še nikoli ni pomenil samostojne predstave. Na splošno lahko pričakujete, da boste približno 90% časa sodelovali z drugimi razvijalci. Da bo projekt uspešen, se morate prepričati, da vsi upoštevajo splošna pravila kodiranja.

Ena od pravil bo o pravilih poimenovanja in razumem, da sledenje določeni konvenciji poimenovanja zahteva veliko truda in lahko potencialno zapravi veliko časa ekipe, dokler jih vsi ne bodo razumeli in jim sledili. To je še posebej težko za nove razvijalce, ki se pridružijo ekipi.

Predlagam vam, da poskusite prebrati več kod drugih ljudi, preden začnete pisati svojo, samo zato, da dobite občutek o najboljših industrijskih praksah.

Nekatera pravila so obvezna, nekatera pa so prepuščena ekipi, da se odloči, kako želi pristopiti.

Če pogledate težavo od zgoraj, boste opazili, da bi morali biti vsi razredi napisani v StudlyCaps, torej UserController in ne user_controller .

In to je primer obveznega pravila, ki ga je treba upoštevati.

Zdaj je primer tega, kar bi kot ekipa lahko opredelili kot svoje notranje pravilo, kako poimenujete svoje razrede, metode in spremenljivke.

Če se pričakuje, da bo projekt sčasoma naraščal, lahko zagotovo pričakujete veliko različnih entitet, ki na tak ali drugačen način vključujejo uporabnika, zato je pomembno, da za svoje razrede, metode in spremenljivke ne izmišljujete nejasnih imen.

Tukaj je moj osebni namig; ne bojte se daljšega razreda ali imena metode. Če potrebujete komentar, ki pojasnjuje vašo metodo, je ime vaše metode verjetno lahko boljše.

Primer tega je, da če želite uporabnike pridobiti iz zbirke podatkov z nekaterimi dodatnimi pogoji, so to morda uporabniki, starejši od 50 let, potem metode ne poimenujte getUsers . Boljši način poimenovanja je getAllUsersOver50YearsOld .

Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...