问题
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:
Your
showroute expects a$commentparameter. That route should be:Route::get('message/show/{comment}', 'MessageController@show');Are you running an
authfilter on this route? If so, Try removing the before filter (or change it temporarily to['before' => 'none']) and reload the route.If your
AuthControlleris not set up, or is missing the login method, you will get aNotFoundHttpExceptionwhen theauthfilter infilter.phptries to redirect to your login page. (See similar question here).
来源:https://stackoverflow.com/questions/26017372/routing-issue-causing-symfony-component-httpkernel-exception-notfoundhtt