Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Laravel игнорирует метод в контроллере

#laravel #controller #php #маршрутизация

                    
Есть контроллер:
class HomeController extends BaseController {
    public function index() {
        return View::make('hello');
    }
}

и при наличии роута:
Route::get('/', 'HomeController@index');

появляется ошибка:
BadMethodCallException 
Method [index] does not exist.

Команда php artisan routes, возвращает то что нужно:
+--------+------------+------+----------------------+----------------+---------------+
| Domain | URI        | Name | Action               | Before Filters | After Filters |
+--------+------------+------+----------------------+----------------+---------------+
|        | GET|HEAD / |      | HomeController@index |                |               |
+--------+------------+------+----------------------+----------------+---------------+

Версия: Laravel 4.2.11    


Ответы

Ответ 1



Проблема решена. Вся проблема была в том что в папке vendor/laravel находилась папка laravel полностью дублирующая корневую директорию из-за этого пространства имен спутались и поиск был не в корневой директории а в папке vendor. Пригодится кому-нибудь на будущее. :)

Ответ 2



А в HomeController у Вас, видимо, дефолтный метод остался, да? Попробуйте роут прописать как-нибудь так: Route::get('/', ['as' => 'home', 'uses' => 'HomeController@showWelcome']); Ещё может быть косяк с автолоадингом. Попробуйте: удалить папку vendor удалить файл bootstrap/compiled.php запустите composer update

Комментариев нет:

Отправить комментарий