0

我想通过使用 Zend Framework 2,更准确地说是 2.1.5 来实现一个 RESTful Web 服务。如果我访问http://ehcserver.localhost/rest 会得到 404 ,相应的消息是“rest(解析为无效的控制器类或别名:rest)”。什么地方出了错?

您可以在我的 github 存储库中看到我的源代码: https ://github.com/Jochen1980/EhcServer/blob/master/module/Application/config/module.config.php

路由定义如下:

return array(
    'router' => array(
        'routes' => array(
            'rest' => array(
                'type' => 'ZendMvcRouterHttpSegment',
                'options' => array(
                'route' => '/:controller[.:formatter][/:id]',
                'constraints' => array(
                    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'formatter' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id' => '[a-zA-Z0-9_-]*'
                ),
            ),
         ),
         'home' => array(
         ...
4

2 回答 2

2

你的路由没有定义控制器所属的命名空间,你需要添加一个__NAMESPACE__路由defaults

        'rest' => array(
            'type' => 'ZendMvcRouterHttpSegment',
            'options' => array(
                'route' => '/:controller[.:formatter][/:id]',
                'defaults' => array(
                    // tell the router which namespace :controller belongs to
                    '__NAMESPACE__' => 'Application\Controller',
                ),
                'constraints' => array(
                    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'formatter' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id' => '[a-zA-Z0-9_-]*'
                ),
            ),
        ),
于 2013-05-03T15:36:48.083 回答
0

您确定类型有效吗?

type' => 'ZendMvcRouterHttpSegment',

对此

type' => 'Segment',
于 2013-05-03T15:56:07.767 回答