I'm creating a new small application with Zend Framework 2 and I've some problem with routes... I've created a a new module cloning the Skeleton Module with Git and renaming it "Users". I've added controllers to register a new user, to login and to perform CRUD operations.
This is my module folder structure:
and this is my module.config.php file:
<?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', ), ), ); When I try with my browser the url test.local/users/login or test.local/users/register everything works fine but if I try test.local/users/user-manager I get the following error:
Route with name "user-manager" not found
whilst with test.local/users/user-manager/edit/5 it is rendered the correct page. I'm bit confused and I don't know how to solve this problem.
Any help is very appreciated. Thanks in advance.

$this->url('user-manager')rather than$this->url('users/user-manager')