如何在Zend模块中添加Restful控制器

时间:2014-11-19 16:43:19

标签: rest zend-framework routing controllers

我实际上正在研究一个应该呈现两种视图的zend框架2应用程序:

  • 视图模型
  • 一个json模型

我会将宁静的控制器包含在我的模块中,但我不了解它是否可行或推荐。

如果某人已经遇到过同一案件,他是否可以给我一些解释,因为我从2天开始没有找到答案。

在我的module.config.php中,我有:

return array(
    'controllers' => array(
        'invokables' => array(
            'Role\Controller\Role' => 'Role\Controller\RoleController',
            'Role\Controller\RoleRest' => 'Role\Controller\RoleRestController',
        ),
    ),
    'router' => array(
        'routes' => array(
            'role' => array(
                'type'    => 'segment',
                'options' => array(
                    'route'    => '/role[/:action][/:id]',
                    'constraints' => array(
                        'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                        'id'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    ),
                    'defaults' => array(
                        'controller' => 'Role\Controller\Role',
                        'action'     => 'index',
                    ),
                ),
            ),
            'role-rest' => array(
                'type'    => 'segment',
                'options' => array(
                    'route'    => '/role-rest[/:id]',
                    'constraints' => array(
                        'id'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    ),
                    'defaults' => array(
                        'controller' => 'Role\Controller\RoleRest',
                        'action'     => 'getList',
                    ),
                ),
            ),
        ),
    ),
    'view_manager' => array(
        'strategies' => array(
            'ViewJsonStrategy',
        ),
        'template_path_stack' => array(
            'role' => __DIR__ . '/../view',
        ),
    ),
);

当我尝试获取myApplication.localhost / role-rest时,页面显示以下消息:

"请求的控制器无法分派请求。

控制器:

角色\控制器\ RoleRest"

我通过简单更改id的正则表达式约束来解决问题:

'约束' =>阵列(      ' ID' => ' [A-ZA-Z0-9 _-] *&#39 ;, ),

0 个答案:

没有答案