2
I’m having trouble creating a module with several controllers in Zend 2. It would, for example, be:
admin/user/
admin/user/add
admin/user/edit
admin/user/delete
How do I adjust the routes to get these Urls?
2
I’m having trouble creating a module with several controllers in Zend 2. It would, for example, be:
admin/user/
admin/user/add
admin/user/edit
admin/user/delete
How do I adjust the routes to get these Urls?
1
In the file module.config.php of your module, you have to declare the invokables for the controllers as well as add the routes for each controller.
For what you describe, the example in the documentation for a name module Album with several shares in a controller with the name AlbumController deal well with your problem:

Contents of the file module.config.php:
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
),
),
// The following section is new and should be added to your file
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
Multiples controllers is also possible if necessary and can be achieved by declaring the various controllers and the various routes as follows:
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController', // 1º controller
'Album\Controller\User' => 'Album\Controller\UserController', // 2º controller
),
),
And the routes:
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
'user' => array(
'type' => 'segment',
'options' => array(
'route' => '/user[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\User',
'action' => 'index',
),
),
),
),
),
Where you’ll have something like this:
view/
album/
album/
index.phtml
user/
index.phtml
Browser other questions tagged php zend
You are not signed in. Login or sign up in order to post.