我是Zend Framework的新用户,我有一个项目要做。问题是我无法将路由配置到第二个控制器。第一个控制器(索引)工作正常,但不是新的。
我用zftool创建了模块,所以我有一个名为“Medicaments”的模块。当我尝试使用以下url localhost / project_zend / public(或localhost / project_zend / public / medicaments)访问我的项目时,它可以工作,我到达我的IndexController,indexAction。但是当我尝试访问我的新控制器“ConfigurationController(存在于/ modules / Medicaments / Controller /中)时,我到达404页面,说”控制器询问无法发送请求。“我的观点表明使用的控制器是“药物/控制器/索引”而不是“药物/控制器/配置”。
这是我的路由器配置(在/modules/Medicaments/config/module.config.php中)文件:
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Medicaments\Controller\Index',
'action' => 'index',
),
),
),
'medicaments' => array(
'type' => 'segment',
'options' => array(
'route' => '/medicaments[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'Medicaments\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
'configuration' => array(
'type' => 'segment',
'options' => array(
'route' => '/configuration[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Configuration',
'action' => 'index',
),
),
),
),
),
感谢您的帮助。
答案 0 :(得分:1)
请自行完成official Documentation(此处链接:路由和控制器)。
当您不知道他们在做什么时,尽量不要使用工具。从长远来看,你只会伤害到你,特别是如果你已经在sprint上开始变得棘手了。
TL / DR:您必须在invokables
- 配置中创建controllers
- 条目。