laravel

Metoda Laravel BadMethodCallException [găsi] nu există

Metoda Laravel BadMethodCallException [găsi] nu există

Problemă

Am încercat să obțin un model elocvent din baza de date, dar continuu să intru în BadMethodCallExceptionMethod [găsi] nu exista.

Iată ce am încercat până acum:

App spațiu de nume;
utilizați Illuminate \ Database \ Eloquent \ Model;
utilizați App \ Organizație;
clasa User extinde Modelul
/ **
* Tabelul bazei de date utilizat de model.
*
* @var șir
* /
protejat $ tabel = 'utilizatori';
/ **
* Atributele excluse din formularul JSON al modelului.
*
* @var array
* /
protejat $ ascuns = matrice ('parola');
organizații cu funcții publice ()

returnează $ this-> belongToMany (Organizație :: clasă);

Aceasta este o clasă de utilizator de bază care vine cu fiecare nou proiect Laravel. După crearea unui nou utilizator, văd clar că utilizatorul cu ID3 există în baza de date. Cu toate acestea, când fac următoarele, ajung cu Metoda BadMethodCallException [găsi] nu există

clasa User extinde BaseController
funcție publică getUser ($ id)

$ utilizatorul_meu = Utilizator :: găsi ($ id);
vizualizare return ('utilizatori.index ', array (' user '=> $ my_user));

Rutele mele de fișiere rutele \ web.php:

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

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

Soluţie

Există câteva probleme cu această implementare care ar putea să vă determine să primiți Metoda BadMethodCallException [găsi] nu există excepție.

După ce ați făcut acest lucru, ar trebui să puteți accesa modelul dvs. de aplicație \ utilizator așa cum ați intenționat.

Explicații suplimentare (numai în scopuri educaționale)

După cum știți, dezvoltarea web nu a însemnat niciodată să fie un show individual. În general, vă puteți aștepta să colaborați cu alți dezvoltatori aproximativ 90% din timp. Pentru ca proiectul să aibă succes, trebuie să vă asigurați că toată lumea respectă regulile generale de codificare.

Una dintre reguli va fi despre convențiile de numire și înțeleg că a ține pasul cu o convenție de numire definită necesită mult efort și poate pierde mult timp din echipă până când toată lumea le poate înțelege și le poate urma. Acest lucru este deosebit de greu pentru dezvoltatorii noi care se alătură echipei.

Aș sugera să încercați să citiți mai multe coduri ale altor persoane înainte de a începe să le scrieți, doar pentru a obține o idee despre cele mai bune practici din industrie.

Unele reguli sunt obligatorii, iar altele sunt lăsate la latitudinea echipei pentru a decide cum vor să abordeze.

Privind problema de mai sus, veți observa că toate clasele ar trebui să fie scrise într-un StudlyCaps, deci UserController și nu user_controller .

Și acesta este un exemplu de regulă obligatorie de urmat.

Acum, un exemplu de ceea ce, în calitate de echipă, ați putea defini ca regulă internă este modul în care vă denumiți clasele, metodele și variabilele.

Dacă se așteaptă ca un proiect să crească în timp, vă puteți aștepta cu siguranță la multe entități diferite care într-un fel sau altul includ un utilizator, deci este important să nu veniți cu nume vagi pentru clasele, metodele și variabilele dvs.

Sfatul meu personal aici este; nu vă fie frică să aveți o clasă mai lungă sau un nume de metodă. Dacă trebuie să aveți un comentariu care să explice metoda dvs., atunci numele metodei dvs. poate fi probabil mai bun.

Un exemplu în acest sens este că, dacă trebuie să obțineți utilizatori dintr-o bază de date cu unele condiții suplimentare, poate că aceștia sunt utilizatori cu vârsta peste 50 de ani, atunci nu denumiți metoda dvs. getUsers . O modalitate mai bună de a-l denumi este getAllUsersOver50YearsOld .

Cum se afișează suprapunerea OSD în aplicații și jocuri Linux pe ecran complet
Jucarea jocurilor pe ecran complet sau utilizarea aplicațiilor în modul ecran complet fără distragere vă poate elimina din informațiile relevante ale ...
Top 5 cărți de captură a jocului
Cu toții am văzut și ne-au plăcut jocurile de streaming pe YouTube. PewDiePie, Jakesepticye și Markiplier sunt doar câțiva dintre cei mai buni jucător...
Cum să dezvolți un joc pe Linux
Acum un deceniu, nu mulți utilizatori de Linux ar fi prezis că sistemul lor de operare preferat va fi într-o zi o platformă populară de jocuri pentru ...