Laravel: метод BadMethodCallException не существует

при попытке извлечь некоторые значения из базы данных с помощью объекта модели User я получаю следующую ошибку: BadMethodCallException Method [find] does not exist

Вот мои файлы: Пользователь модели

 <?php use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableInterface; class User extends Eloquent implements UserInterface, RemindableInterface { /** * The database table used by the model. * * @var string */ protected $table = 'users'; /** * The attributes excluded from the model's JSON form. * * @var array */ protected $hidden = array('password'); public function projects() { return $this->belongsToMany('Project'); } public function trys() { return $this->hasMany('Try'); } /** * Get the unique identifier for the user. * * @return mixed */ public function getAuthIdentifier() { return $this->getKey(); } /** * Get the password for the user. * * @return string */ public function getAuthPassword() { return $this->password; } /** * Get the e-mail address where password reminders are sent. * * @return string */ public function getReminderEmail() { return $this->email; } } 

Пользователь контроллера:

 <?php class user extends BaseController { public function showWelcome($id) { $user1 = User::find($id); return View::make('users.index', array('user' => $user1)); // } } 

Просмотр пользователей / index.php

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>first page</title> </head> <body> <?php echo 'Hello'; ?> </body> </html> 

и route.php:

 <?php Route::get('user/{id}', 'user@showWelcome'); Route::get('/', function() { return View::make('hello'); }); 

Спасибо за помощь

Related of "Laravel: метод BadMethodCallException не существует"

Вы не должны получать эту ошибку, потому что кажется, что вы используете Eloquent, и на нем есть метод find() .

Но вы получаете эту ошибку, и есть несколько возможных причин:

1) User:: вы вызываете не то же самое, что вы здесь показываете, чтобы проверить выполнение в контроллере:

 $reflector = new ReflectionClass("User"); $fn = $reflector->getFileName(); dd($fn); 

Он должен показать вам полный путь вашего класса.

2) В автозагрузке что-то не так, вы можете запустить:

 composer dumpautoload 

Попробовать это исправить.

3) Что-то не так с источниками Laravel, вы можете удалить код Laravel:

 rm -rf vendor/laravel 

и установите его снова

 composer update 

Иногда этот конфликт возникает, когда в Laravel существует еще одна модель с тем же именем и, скорее всего, имеет приоритет над вашей моделью. Избегайте «ключевых слов». Для меня моя проблема заключалась в вызове моей модели: Form и my db table (from migration): forms .

Выполнение следующего cmd в моем FormController :

 $reflector = new ReflectionClass("Form"); $fn = $reflector->getFileName(); dd($fn); 

показал, что «реальная» форма находилась в рамках Illuminate:

 "/home/pkanane/laravel_appz/cpay/vendor/laravel/framework/src/Illuminate/Support/Facades/Form.php" 

Поэтому я просто изменил свое имя модели на WebForm и мою таблицу db на web_forms