Я получаю эту ошибку при тестировании моего кода. Я знаю, что это проблема маршрутизации, но я не вижу ничего плохого в моих маршрутах.
Вот маршруты, которые вызывают проблемы:
Route::get('/messages', 'MessageController@create');
Route::get('/messages/show/{comment}', 'MessageController@show');
Вот контроллер:
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
}
Ваш show
маршрут ожидает $comment
параметр. Этот маршрут должен
быть:
Route::get('message/show/{comment}', 'MessageController@show');
Вы управляете auth
фильтр на этом маршруте? Если это так, попробуйте удалить
фильтр до (или временно изменить его на ['before' => 'none']
)
и перезагрузите маршрут.
Если твой AuthController
не настроен или отсутствует логин
метод, вы получите NotFoundHttpException
когда auth
фильтровать filter.php
пытается перенаправить на вашу страницу входа. (Увидеть
аналогичный вопрос
Вот).
Других решений пока нет …