Я сейчас перехожу с L3 на L4. При регистрации контроллера HomeController
который поставляется с установкой по умолчанию L4, попытка перейти на страницу www.domain.com/home
дает мне исключение ResourceNotFound
. Я сделал composer dumpautoload
но это не помогло.
Я пропустил дополнительный шаг?
routes.php
Route::controller('home', 'HomeController');
Контроллеры / HomeController.php
<?php class HomeController extends BaseController { public function showWelcome() { return View::make('hello'); } }
Ошибка Stacktrace
NotFoundHttpException: in /var/www/l4/vendor/laravel/framework/src/Illuminate/Routing/Router.php line 1338 at Router->handleRoutingException(object(ResourceNotFoundException)) in /var/www/l4/vendor/laravel/framework/src/Illuminate/Routing/Router.php line 992 at Router->findRoute(object(Request)) in /var/www/l4/vendor/laravel/framework/src/Illuminate/Routing/Router.php line 956 at Router->dispatch(object(Request)) in /var/www/l4/vendor/laravel/framework/src/Illuminate/Foundation/Application.php line 463 at Application->dispatch(object(Request)) in /var/www/l4/vendor/laravel/framework/src/Illuminate/Foundation/Application.php line 448 at Application->run() in /var/www/l4/public/index.php line 51
Согласно документации :
Затем просто добавьте методы в ваш контроллер, с префиксом HTTP-глагола, на который они отвечают
Так:
class UserController extends BaseController { public function getIndex() { // Would response to /user and /user/index } }
Итак, в вашем случае достаточно просто переименовать showWelcome()
в getWelcome()
.
Попробуйте изменить маршрут:
Route::resource('home', 'HomeController');
ОБНОВЛЕНИЕ: Мое плохое, я думал, что вам нужен находчивый контроллер, как описано здесь: http://four.laravel.com/docs/controllers#resource-controllers
Для «нормальных» контроллеров RESTful ответ juco кажется правильным.
Если вам нужны базовые контроллеры, вы можете использовать их для соответствия вашему методу контроллера:
Route::get('home', 'HomeController@showWelcome');