[英]ZF2 route to controller
I have created a controller called "ActividadesPlanificadasController.php" and I have defined in my module.config the next routing but it is not work. 我创建了一个名为“ ActividadesPlanificadasController.php”的控制器,并在我的module.config中定义了下一个路由,但它不起作用。
'publico/peticiones-incidencias-planificadas/actividades-planificadas' => array(
'type' => 'Literal',
'options' => array(
'route' => 'publico/peticiones-incidencias-planificadas/actividades-planificadas',
'defaults' => array(
'__NAMESPACE__' => 'Privado\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
//'route' => '/[:controller[/:action[/:id]]]',
'route' => '/[:controller[/:action][/:id/:system]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]*',
'system' => '[a-zA-Z][a-zA-Z0-9_-]*'
//'system' => '[0-9]*'
),
'defaults' => array(
),
),
),
),
),
These are my controllers ... 这些是我的控制器...
'controllers' => array(
'invokables' => array(
'Publico\Controller\Index' => Controller\IndexController::class,
'Publico\Controller\Login' => Controller\LoginController::class,
'Publico\Controller\NoAccess' => Controller\NoAccessController::class,
'Publico\Controller\ActividadesPlanificadas' => Controller\ActividadesPlanificadasController::class
),
),
Because I want to access to my controller with the next url: http://gnsys.local/publico/peticiones-incidencias-planificadas/actividades-planificadas 因为我想使用下一个URL访问我的控制器: http://gnsys.local/publico/peticiones-incidencias-planificadas/actividades-planificadas
And I've got the next error ... 我有下一个错误...
A 404 error occurred Page not found. 发生404错误找不到页面。
The requested controller could not be mapped to an existing controller class. 请求的控制器无法映射到现有的控制器类。
Controller: Publico\\Controller\\PeticionesIncidenciasPlanificadas(resolves to invalid controller class or alias: Publico\\Controller\\PeticionesIncidenciasPlanificadas) 控制器:Publico \\ Controller \\ PeticionesIncidenciasPlanificadas(解析为无效的控制器类或别名:Publico \\ Controller \\ PeticionesIncidenciasPlanificadas)
No Exception available 没有例外
What am I doing wrong? 我究竟做错了什么?
Edit 1: 编辑1:
I have updated my module.config and it works with the route: http://gnsys.local/publico/actividades-planificadas 我已经更新了我的module.config,它适用于以下路由: http://gnsys.local/publico/actividades-planificadas
module.config: module.config:
'publico/actividades-planificadas' => array(
'type' => 'Literal',
'options' => array(
'route' => 'publico/actividades-planificadas',
'defaults' => array(
'__NAMESPACE__' => 'Publico\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
//'route' => '/[:controller[/:action[/:id]]]',
'route' => '/[:controller[/:action][/:id/:system]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]*',
'system' => '[a-zA-Z][a-zA-Z0-9_-]*'
//'system' => '[0-9]*'
),
'defaults' => array(
),
),
),
),
),
'controllers' => array(
'invokables' => array(
'Publico\Controller\Index' => Controller\IndexController::class,
'Publico\Controller\Login' => Controller\LoginController::class,
'Publico\Controller\NoAccess' => Controller\NoAccessController::class,
'Publico\Controller\ActividadesPlanificadas' => Controller\ActividadesPlanificadasController::class
),
),
But I want that my route to access to ActividadesPlanificadasController would be: http://gnsys.local/publico/peticiones-incidencias-actividades/actividades-planificadas 但是我希望访问ActividadesPlanificadasController的途径是: http://gnsys.local/publico/peticiones-incidencias-actividades/actividades-planificadas
If I change my module.config to ... 如果我将module.config更改为...
'publico/peticiones-incidencias-planificadas/actividades-planificadas' => array(
'type' => 'Literal',
'options' => array(
'route' => 'publico/peticiones-incidencias-planificadas/actividades-planificadas',
'defaults' => array(
'__NAMESPACE__' => 'Publico\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
//'route' => '/[:controller[/:action[/:id]]]',
'route' => '/[:controller[/:action][/:id/:system]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]*',
'system' => '[a-zA-Z][a-zA-Z0-9_-]*'
//'system' => '[0-9]*'
),
'defaults' => array(
),
),
),
),
),
I've got the error 我有错误
A 404 error occurred Page not found. The requested controller could not be mapped to an existing controller class. Controller: Publico\\Controller\\PeticionesIncidenciasPlanificadas(resolves to
invalid controller class or alias: Publico\\Controller\\PeticionesIncidenciasPlanificadas) 无效的控制器类或别名:Publico \\ Controller \\ PeticionesIncidenciasPlanificadas)
No Exception available
What am I still doing wrong? 我仍然在做错什么?
You point to a controller called 'Privado\\Controller\\Index'
but your invokable is called 'Publico\\Controller\\Index'
. 您指向一个名为'Privado\\Controller\\Index'
但可调用的名称为'Publico\\Controller\\Index'
。
Change the namespace
so it corresponds. 更改namespace
,使其对应。
Privado -> Publico
or 要么
Publico -> Privado
or add a controller for 'Privado\\Controller\\Index'
或为'Privado\\Controller\\Index'
添加控制器
'invokables' => array(
'Privado\Controller\Index' => //your privado controller,
//...other controllers...
)
Make also sure you have an invokable controller class in the correct namespace. 还请确保您在正确的名称空间中具有可调用的控制器类。 So if you register like this: 因此,如果您这样注册:
'invokables' => array(
'Privado\Controller\Index' => 'Privado\Controller\IndexController'
)
You need a controller class in a php file called IndexController.php
in the folder Privado
- Controller
您需要在文件夹Privado
- Controller
中的名为IndexController.php
的php文件中创建一个控制器类。
- Privado
- Controller
- IndexController.php
And the class should have the correct name and namespace constant: 并且该类应具有正确的名称和名称空间常量:
<?php
namespace = Privado\Controller;
class IndexController extends ... {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.