在Laravel 4中找不到控制器路由

时间:2013-03-23 15:16:28

标签: php routing laravel laravel-4

我正在从L3迁移到L4。注册默认L4安装附带的HomeController控制器时,尝试转到页面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

2 个答案:

答案 0 :(得分:4)

根据documentation

  

接下来,只需向控制器添加方法,前缀为HTTP谓词   他们回应

所以:

class UserController extends BaseController {

    public function getIndex() 
    {
        // Would response to /user and /user/index
    }
}

因此,在您的情况下,只需将showWelcome()重命名为getWelcome()即可。

答案 1 :(得分:1)

尝试更改您的路线:

Route::resource('home', 'HomeController');

更新:我的不好,我认为你想要一个足智多谋的控制器,如下所述:http://four.laravel.com/docs/controllers#resource-controllers

对于“普通”RESTful控制器,juco的回答似乎是正确的。

如果您需要基本控制器,可以使用它来对应您的控制器方法:

Route::get('home', 'HomeController@showWelcome');