Я создаю новое небольшое приложение с Zend Framework 2, и у меня есть некоторые проблемы с маршрутами ... Я создал новый модуль, клонирующий модуль Skeleton с Git и переименовав его " Пользователи». Я добавил контроллеры для регистрации нового пользователя, для входа в систему и для выполнения CRUD-операций.Php Zend 2 Маршрут не найден
Это моя структура папок модуля:
и это мой module.config.php файл:
<?php
return array(
'controllers' => array(
'invokables' => array(
'Users\Controller\Index' => 'Users\Controller\IndexController',
'Users\Controller\Register' => 'Users\Controller\RegisterController',
'Users\Controller\Login' => 'Users\Controller\LoginController',
'Users\Controller\UserManager' => 'Users\Controller\UserManagerController',
),
),
'router' => array(
'routes' => array(
'users' => array(
'type' => 'Literal',
'options' => array(
// Change this to something specific to your module
'route' => '/users',
'defaults' => array(
// Change this value to reflect the namespace in which
// the controllers for your module are found
'__NAMESPACE__' => 'Users\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
// This route is a sane default when developing a module;
// as you solidify the routes for your module, however,
// you may want to remove it and replace it with more
// specific routes.
'login' => array(
'type' => 'Segment',
'may_terminate' => true,
'options' => array(
'route' => '/login[/:action]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Users\Controller\Login',
'action' => 'index',
),
),
),
'register' => array(
'type' => 'Segment',
'may_terminate' => true,
'options' => array(
'route' => '/register[/:action]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Users\Controller\Register',
'action' => 'index',
),
),
),
'user-manager' => array(
'type' => 'Segment',
'may_terminate' => true,
'options' => array(
'route' => '/user-manager[/:action[/:id]]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Users\Controller\UserManager',
'action' => 'index',
),
),
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
'users' => __DIR__ . '/../view',
),
),
);
Когда я пытаюсь с моим браузером URL-адрес test.local/users/login или test.local/users/register все работает нормально, но если я попробую test.local/users/user-manager Я получаю следующее сообщение об ошибке:
Route with name "user-manager" not found
в то время как с test.local/пользователей/пользователь-менеджер/редактировать/5 он визуализируется нужную страницу. Я немного смущен, и я не знаю, как решить эту проблему.
Любая помощь очень ценится. Заранее спасибо.
Конфигурация выглядит хорошо; вы уверены, что это ошибка 404? Вы можете получить «маршрут не найден», если вы используете помощник просмотра URL с недопустимым именем маршрута, например '$ this-> url ('user-manager')', а не '$ this-> url ('users/user- manager ') ' – AlexP
@AlexP это не ошибка 404, кажется, что с URL _/users/user-manager_ приложение не может найти маршрут с именем« user-manager », а с помощью _/users/user-manager/edit/1_ он отлично работает. Благодарю. – Stefano
@AlexP спасибо !!! Вы были правы – Stefano