首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel控制器动作返回错误404

Laravel控制器动作返回错误404
EN

Stack Overflow用户
提问于 2015-02-19 15:52:01
回答 2查看 1.7K关注 0票数 0

当试图访问链接到控制器操作的路由时,我得到了一个404错误。

我在我的routes.php文件中定义了这样的路由。

代码语言:javascript
运行
复制
Route::controller('error', 'ErrorsController');

ErrorsController类如下所示。

代码语言:javascript
运行
复制
class ErrorsController extends BaseController {

    public function __construct()
    {
        // vacio
    }

    public function getIndex()
    {
        return View::make('error.accessdenied');
    }

    public function getAccessDenied()
    {
        return View::make('error.accessdenied');
    }
}

如果它正常工作,我有一个链接到chek的视图。该链接如下所示

代码语言:javascript
运行
复制
{{ HTML::linkAction('ErrorsController@getAccessDenied', 'Error') }}

当我点击链接时,页面移动到URL‘mytestdomain.com/ error / access -拒绝’返回404错误,但当我访问URL 'mytestdomain.com/error‘时,它工作得很好。

知道我做错了什么吗?

编辑:运行命令php artisan routes --这些是指向ErrorsController的路由

代码语言:javascript
运行
复制
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+
| Domain | URI                                                                                            | Name | Action                               | Before Filters | After Filters |
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+
|        | GET|HEAD error/index/{one?}/{two?}/{three?}/{four?}/{five?}                                    |      | ErrorsController@getIndex            |                |               |
|        | GET|HEAD error                                                                                 |      | ErrorsController@getIndex            |                |               |
|        | GET|HEAD error/access-denied/{one?}/{two?}/{three?}/{four?}/{five?}                            |      | ErrorsController@getAccessDenied     |                |               |
|        | GET|HEAD|POST|PUT|PATCH|DELETE error/{_missing}                                                |      | ErrorsController@missingMethod       |                |               |
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+

只有森康德和第四人起作用了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-26 10:58:11

不知怎么我发现了问题。

出于某种原因,我的apache服务器没有重写mytestdomain.com/error/ *路由。可能与单词错误和apache模块mod_rewrite有关。

无论如何,按照以下方式定义路径可以解决这个问题。

代码语言:javascript
运行
复制
Route::controller('fail', 'ErrorsController');
票数 0
EN

Stack Overflow用户

发布于 2015-02-19 16:08:00

它看起来就像用你不工作的方式指定路线一样。这种类型的路由只适用于RESTful请求。见>http://laravel.com/docs/4.2/controllers#restful-resource-controllers>。

您可能必须使用路由::get/post显式指定路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28610762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档