laravel

Методът Laravel BadMethodCallException [find] не съществува

Методът Laravel BadMethodCallException [find] не съществува

Проблем

Опитвам се да взема красноречив модел от базата данни, но продължавам да влизам BadMethodCallExceptionMethod [намери] не съществува.

Ето какво опитах досега:

App пространство за имена;
използвайте Illuminate \ Database \ Eloquent \ Model;
използвайте App \ Organization;
class Потребителят разширява Model
/ **
* Таблицата на базата данни, използвана от модела.
*
* @var низ
* /
защитен $ table = 'потребители';
/ **
* Атрибутите, изключени от JSON формата на модела.
*
* @var масив
* /
защитен $ hidden = array ('парола');
организации с обществена функция ()

върнете $ this-> pripadaToMany (Организация :: клас);

Това е основен потребителски клас, който идва с всеки нов проект на Laravel. След създаването на нов потребител ясно виждам, че потребител с ID3 съществува в базата данни. Когато обаче направя следното, в крайна сметка получавам Методът BadMethodCallException [find] не съществува

клас Потребител разширява BaseController
публична функция getUser ($ id)

$ my_user = Потребител :: намери ($ id);
return view ('потребители.индекс ', масив (' потребител '=> $ my_user));

Файлови маршрути на Моите маршрути \ уеб.php:

Route :: get ('user / id', '[имейл защитен]');
Route :: get ('/', function ()

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

Решение

Има няколко проблема с това изпълнение, които може да са причина за получаването ви Методът BadMethodCallException [find] не съществува изключение.

След това трябва да имате достъп до вашия App \ User модел, както сте планирали.

Допълнителни обяснения (само за образователни цели)

Както знаете, уеб разработката никога не е означавало да бъде моноспектакъл. Като цяло можете да очаквате да си сътрудничите с други разработчици около 90% от времето. За да бъде проектът успешен, трябва да се уверите, че всички спазват общи правила за кодиране.

Едно от правилата ще бъде свързано с конвенциите за именуване и разбирам, че спазването на определена конвенция за именуване изисква много усилия и потенциално може да загуби много от времето на екипа, докато всички могат да ги разберат и следват. Това е особено трудно за нови разработчици, които се присъединяват към екипа.

Бих ви предложил да се опитате да прочетете повече от кода на други хора, преди да започнете да пишете своя, само за да получите представа за най-добрите отраслови практики.

Някои правила са задължителни, а някои са оставени на екипа да реши как иска да подходи.

Разглеждайки проблема отгоре, ще забележите, че всички класове трябва да бъдат написани в StudlyCaps, така че UserController, а не user_controller .

И това е пример за задължително правило, което трябва да се следва.

Сега пример за това, което вие като екип бихте могли да определите като ваше вътрешно правило, е как назовавате своите класове, методи и променливи.

Ако се очаква даден проект да расте с течение на времето, със сигурност можете да очаквате много различни обекти, които по един или друг начин включват Потребител, така че е важно да не измисляте неясни имена за вашите класове, методи и променливи.

Моят личен съвет тук е; не се страхувайте да имате по-дълъг клас или име на метод. Ако трябва да имате коментар, който обяснява вашия метод, тогава името на метода ви може да е по-добро.

Пример за това е, че ако трябва да получите потребители от база данни с някакво допълнително условие, може би това са потребители на възраст над 50 години, тогава не назовавайте метода си getUsers . По-добър начин да го наименувате е getAllUsersOver50YearsOld .

Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...