Zendframework - 向现有控制器添加操作会导致权限被拒绝

时间:2017-03-05 06:47:37

标签: php zend-framework zend-framework2

我使用Zendframework(2.3),在尝试在现有控制器上创建新操作和查看时,我很难理解我做错了什么。我已经阅读了一些相关的documentation,但仍然看不到我错过的内容。

目前控制器基本上默认为单个动作(主要),我想再添加一个。

EG:

/list-item/main => //现有路线 /list-item/add => //我想补充的新路线。

这就是我的module.config.php看起来的样子:

return array(

    'router' => array(
        'routes' => array(
            'list-item' => array(
                'type' => 'segment',
                'options' => array(
                    'route' => '/list-item[/:action][/:id][/:id1][/:id2][/:id3][/:id4][/:id5]',
                    'constraints' => array(
                        'action' => '[a-zA-Z][a-zA-Z0-9_-]*'
                    ),
                    'defaults' => array(
                        'controller' => 'ListItem',
                        'action' => 'main',
                    ),
                ),
            ),
        ),
    ),
    'controllers' => array(
        'invokables' => array(
            'ListItem' => 'ListItem\Controller\ListItemController',
        ),
    ),
    'view_manager' => array(
         'template_path_stack' => array(
            __DIR__ . '/../view',
        ),
    ),
);

如果我能正确读取此配置,实际操作名称是可选的,但模块将默认为主操作。然而,允许尝试任何行动都是灵活的。

所以,我继续在ListItemController中添加一个新的公共函数,假设这是约定的工作方式:

public function addAction() {
  return new ViewModel();
}

在模块的观看文件夹中添加了一个新的视图文件,实际上就在main.phtml旁边但名为add.phtml

但是当我尝试访问路线/list-item/add时,我只获得permission denied。有趣,因为实际状态是200.但我没有其他信息。老实说,我甚至不知道这是否是ZF的事情,我只能假设。

另外,如果网络服务器可能有事情要做,我会使用php -S 0.0.0.0:8080 -t public/

提前致谢,我们将非常感谢任何帮助。

0 个答案:

没有答案