Я получаю ошибку 404 при попытке получить доступ к маршруту, связанному с действием контроллера.Действия контроллера Laravel возвращают ошибку 404
У меня есть маршрут, определенный как это в моем routes.php файл.
Route::controller('error', 'ErrorsController');
ErrorsController класс выглядит следующим образом.
class ErrorsController extends BaseController {
public function __construct()
{
// vacio
}
public function getIndex()
{
return View::make('error.accessdenied');
}
public function getAccessDenied()
{
return View::make('error.accessdenied');
}
}
У меня есть вид со ссылкой на chek, если он работает правильно. Ссылка создается следующим образом
{{ HTML::linkAction('[email protected]', 'Error') }}
Когда я нажимаю на ссылку на страницу переходит к URL «mytestdomain.com/error/access-denied» возвращающий ошибку 404, но когда я получить доступ к URL 'mytestdomain.com/error' работает отлично.
Любая идея о том, что я делаю неправильно?
EDIT: Запуск команды php artisan routes
эти маршруты, указывающие на ErrorsController
:
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+
| | GET|HEAD error/index/{one?}/{two?}/{three?}/{four?}/{five?} | | [email protected] | | |
| | GET|HEAD error | | [email protected] | | |
| | GET|HEAD error/access-denied/{one?}/{two?}/{three?}/{four?}/{five?} | | [email protected] | | |
| | GET|HEAD|POST|PUT|PATCH|DELETE error/{_missing} | | [email protected] | | |
+--------+------------------------------------------------------------------------------------------------+------+--------------------------------------+----------------+---------------+
Только sencond и четвертый из них работают.
Изменение пути устраняет проблему, однако все маршруты к моим другим контроллерам определяются так же, как и этот, и работают тоже. – Lerzenit
Кроме того, согласно документации laravel [здесь] (http://laravel.com/docs/4.2/controllers#implicit-controllers) 'Route :: controller()' является способом определения _Implicit controllers_ – Lerzenit
Вы пытались запустить 'php artisan routes'? Это может пролить свет на доступные маршруты. Вероятно, вы уже знаете это, но «mytestdomain.com/error» работает, потому что маршрутизатор Laravel сопоставляет любой «корневой» уровень URL-адреса для действия индекса. В этом случае действие 'getIndex()'. – ediblemanager