laravel

Laravelio BadMethodCallException metodo [rasti] nėra

Laravelio BadMethodCallException metodo [rasti] nėra

Problema

Bandžiau iš duomenų bazės gauti „Eloquent“ modelį, bet vis patekau BadMethodCallExceptionMethod [rasti] neegzistuoja.

Štai ką aš bandžiau iki šiol:

vardų srities programa;
naudoti Illuminate \ Database \ Eloquent \ Model;
naudoti „App \ Organization“;
klasės vartotojas prailgina modelį
/ **
* Modelio naudojama duomenų bazės lentelė.
*
* @var eilutė
* /
apsaugotas $ table = 'vartotojai';
/ **
* Atributai, neįtraukti į modelio JSON formą.
*
* @var masyvas
* /
apsaugotas $ hidden = masyvas ('slaptažodis');
viešųjų funkcijų organizacijos ()

grąžinti $ this-> priklausoToMany (organizacija :: klasė);

Tai yra pagrindinė „User“ klasė, pridedama prie kiekvieno naujo „Laravel“ projekto. Sukūręs naują vartotoją, aiškiai matau, kad duomenų bazėje yra vartotojas su ID3. Tačiau kai atliksiu šiuos veiksmus, galų gale turiu „BadMethodCallException“ metodo [rasti] nėra

klasės vartotojas išplečia „BaseController“
viešoji funkcija „getUser“ ($ id)

$ my_user = Vartotojas :: rasti ($ id);
grįžimo rodinys ('vartotojai.indeksas ', masyvas (' vartotojas '=> $ mano_naudotojas));

Mano maršrutų failo maršrutai \ žiniatinklis.php:

Route :: get ('user / id', '[email protected]');
Maršrutas :: gauti ('/', funkcija ()

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

Sprendimas

Yra keletas problemų dėl šio diegimo, dėl kurių galbūt jus gausite „BadMethodCallException“ metodo [rasti] nėra išimtis.

Tai padarę turėtumėte turėti galimybę pasiekti savo „App \ User“ modelį taip, kaip ketinote.

Kiti paaiškinimai (tik švietimo tikslais)

Kaip žinote, interneto svetainių kūrimas niekada nereiškė būti vieno žmogaus šou. Maždaug 90% laiko galite tikėtis bendradarbiauti su kitais kūrėjais. Kad projektas būtų sėkmingas, turite įsitikinti, kad visi laikosi bendrų kodavimo taisyklių.

Apie taisykles bus kalbama apie vardų suteikimo tvarką ir aš suprantu, kad norint laikytis apibrėžtos vardų suteikimo tvarkos reikia daug pastangų ir gali sugaišti daug komandos laiko, kol visi jas supras ir jų laikysis. Tai ypač sunku naujiems kūrėjams, prisijungiantiems prie komandos.

Siūlyčiau pabandyti perskaityti daugiau kitų žmonių kodų prieš pradedant rašyti savo, kad tik suprastumėte geriausią pramonės praktiką.

Kai kurios taisyklės yra privalomos, o kai kurios paliekamos komandos sprendimui, kaip jie nori kreiptis.

Pažvelgus į problemą iš viršaus, pastebėsite, kad visos klasės turėtų būti parašytos „StudlyCaps“, taigi „UserController“, o ne „user_controller“ .

Tai yra privalomos taisyklės, kurios reikia laikytis, pavyzdys.

Dabar pavyzdys to, ką jūs kaip komanda galėtumėte apibrėžti kaip savo vidinę taisyklę, yra tai, kaip jūs pavadinate savo klases, metodus ir kintamuosius.

Jei tikimasi, kad projektas bėgant laikui augs, tikrai galite tikėtis daugybės skirtingų subjektų, kurie vienaip ar kitaip apima vartotoją, todėl svarbu, kad nesugalvotumėte neaiškių savo klasių, metodų ir kintamųjų pavadinimų.

Mano asmeninis patarimas čia yra; nebijokite turėti ilgesnės klasės ar metodo pavadinimo. Jei jums reikia komentaro, paaiškinančio jūsų metodą, metodo pavadinimas tikriausiai gali būti geresnis.

To pavyzdys yra tas, kad jei jums reikia surinkti vartotojus iš duomenų bazės su tam tikromis papildomomis sąlygomis, galbūt tai yra vyresni nei 50 metų vartotojai, tada nevadinkite savo metodo getUsers . Geresnis būdas tai pavadinti yra getAllUsersOver50YearsOld .

Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...
5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...