繁体   English   中英

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

[英]Controller Route not found in 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');
    }

}

错误堆栈跟踪

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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM