不明白为什么我一直收到这个错误:Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

时间:2014-09-17 13:40:23

标签: php symfony laravel laravel-4 routing

我知道这是一个路由错误,但我在路由中找不到任何错误。

  // comments
  Route::get('/comments', 'CommentsController@index');

这是控制器。

 /**
 * Display a listing of the resource.
 * GET /comments
 *
 * @return Response
 */
public function index()
{
    return View::make('comments.create');
}

提前谢谢你。对某人来说,这可能是一个简单的15分。

4 个答案:

答案 0 :(得分:0)

我认为当您尝试提交表单时会出现问题。当你使用:

Route::get('/comments', 'CommentsController@index');

仅适用于GET请求,如果您尝试提交表单,则可能使用POST方法

您可以添加到您的路线:

Route::post('/comments', 'CommentsController@index');

如果您想在控制器中路由到相同的方法或创建另一个方法并路由到它。

您也可以使用:

Route::any('/comments', 'CommentsController@index');

如果您不关心方法 - 所有请求(包括POST和GET)都将被定向到路线。

答案 1 :(得分:0)

鉴于显示了完整的routes.php文件,您需要在顶部添加PHP左括号:

<?php

// comments
Route::get('/comments', 'CommentsController@index');

省略这将给你准确的错误。

答案 2 :(得分:0)

我能想到的两件事情。第一个是你的路线:

Route::get('/comments', 'CommentsController@index');

我认为它可能是:

Route::get('comments', 'CommentsController@index'); // Note the omitted /
Route::get('comments', array('as' => 'comments', 'uses' => 'CommentsController@index');

从理论上讲,这应该可以解决这个问题,但如果没有,那么在使用视图时我还会做另外一件事。你有:

return View::make('comments.create');

我用:

return View::make('comments/create');

文件夹结构如下:

views->comments->create.blade.php

现在我不知道是否/如何影响它,试试看。

答案 3 :(得分:0)

看来你在这条路线上有一个auth过滤器。如果您的AuthController未设置或缺少login方法,则当NotFoundHttpException中的auth过滤器尝试重定向到filter.php时,您将获得{{1}}你的登录页面。