问题
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
show
route expects a$comment
parameter. That route should be:Route::get('message/show/{comment}', 'MessageController@show');
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 aNotFoundHttpException
when theauth
filter infilter.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