2

我正在从 L3 迁移到 L4。注册HomeController默认 L4 安装附带的控制器时,尝试转到该页面www.domain.com/home会给我一个ResourceNotFound例外。我做了一个composer dumpautoload,但没有帮助。

我错过了一个额外的步骤吗?

路由.php

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

控制器/HomeController.php

<?php

class HomeController extends BaseController {

    public function showWelcome()
    {
        return View::make('hello');
    }

}

错误堆栈跟踪

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
4

2 回答 2

4

根据文档

接下来,只需将方法添加到您的控制器,以它们响应的 HTTP 动词为前缀

所以:

class UserController extends BaseController {

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

因此,在您的情况下,只需重命名showWelcome()getWelcome()就足够了。

于 2013-03-23T15:48:28.687 回答
1

尝试将您的路线更改为:

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

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

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

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

Route::get('home', 'HomeController@showWelcome');
于 2013-03-23T15:49:49.173 回答