【发布时间】:2015-04-17 09:00:18
【问题描述】:
我用 artisan make:controller 创建了一个 RESTful 控制器,我在我的 routes.php 中使用资源方法,这是我的 routes.php:
Route::resource('page', 'PageController');
我的控制器上没有任何编辑方法(我删除了它)所以如果我点击这个 URI:
http://laravel.dev/page/{id}/edit
Laravel 应该返回一个 404 页面,但实例它返回一个空白页面。
如何让它为不存在的方法返回 404 响应?
【问题讨论】:
-
空白页通常意味着某处有错误。您是否开启了错误报告?
-
是的,它打开了,似乎它正在寻找编辑方法,当找不到方法时它什么也不做。如果我将编辑方法添加到控制器,它就像一个魅力:)
-
缺少的方法不是404页面,是php错误
-
是的,但是当我们假设它是一个页面时,假设我将 uri 更改为这样的东西:laravel.dev/page/id/another_method_does_not_exist。它返回 404 页面。但是在 restful 控制器中,它假设存在编辑方法,即使它不存在!它什么也没有返回,因为没有什么可以返回。
-
应该抛出MethodNotFoundException异常,如果没有设置报错是空白页
标签: php controller http-status-code-404 laravel-5 restful-url