Routing issue causing Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException error

陌路散爱 提交于 2019-12-11 22:28:05

问题


I am getting this error when testing my code. I know it is a routing issue but I can't see anything wrong with my routes.

Here is the routes that are causing the problems:

Route::get('/messages', 'MessageController@create');
Route::get('/messages/show/{comment}', 'MessageController@show');

Here is the controller:

class MessageController extends BaseController
{

protected $messageForm;

public function __construct(MessageForm $messageForm, MessageRepository $messageRepository,
  MessageRecord $messageRecord)
{
    $this->messageForm = $messageForm;
    $this->messageRepository = $messageRepository;
    $this->messageRecord = $messageRecord;
}

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



public function show($comment)
{
    $message_id = $this->messageRepository->find($comment);
    return View::make('message.show')->with('comment', $message_id);
}

/**
 * Store a newly created resource in storage.
 * POST /messaages
 *
 * @return Response
 */
public function store()
{
    $data = Input::all() ;
    $this->messageForm->validate($data);

    $messageRecord = new MessageRecord;
    $messageRecord->comment = $data['comment'];

    Return "Comment created";
}
}

composer.json

  {
"name": "Desk",
"description": "Control desk",
"keywords": ["desk"],
"require": {
    "laravel/framework": "4.2.*",
    "ornicar/gravatar-bundle": "1.1.*"
},
"require-dev": {
    "behat/behat": "3.0.*",
    "behat/mink-extension": "~2.0@dev",
    "behat/mink-goutte-driver": "~1.0",
    "phpunit/phpunit": "4.0.*",
    "mockery/mockery": "dev-master",
    "way/generators": "dev-master",
    "doctrine/dbal": "2.3.*"
},
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/controllers/parts",
        "app/controllers/cross",
        "app/database/migrations",
        "app/database/seeds",
        "app/database/seeds/parts",
        "app/tests/TestCase.php",
        "app/tests/FreshDatabase.php"
    ],
    "psr-4": {
        "Desk\\": "app/desk"
 }
},
"scripts": {
    "post-install-cmd": [
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "dev",
"prefer-stable": true
}

回答1:


  1. Your show route expects a $comment parameter. That route should be:

    Route::get('message/show/{comment}', 'MessageController@show');
    
  2. Are you running an auth filter on this route? If so, Try removing the before filter (or change it temporarily to ['before' => 'none']) and reload the route.

    If your AuthController is not set up, or is missing the login method, you will get a NotFoundHttpException when the auth filter in filter.php tries to redirect to your login page. (See similar question here).



来源:https://stackoverflow.com/questions/26017372/routing-issue-causing-symfony-component-httpkernel-exception-notfoundhtt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!