在ZF2上创建控制器

时间:2014-01-24 08:41:43

标签: zend-framework2

我是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',
                ),
            ),
        ),
    ),
),

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

请自行完成official Documentation(此处链接:路由和控制器)。

当您不知道他们在做什么时,尽量不要使用工具。从长远来看,你只会伤害到你,特别是如果你已经在sprint上开始变得棘手了。

TL / DR:您必须在invokables - 配置中创建controllers - 条目。