0

我创建了一个模块,它是 ZF2 文档中给出的专辑示例的基本副本,但是,使用新模块,我根本无法访问它 - 我总是收到 404 错误。我正在 ZF2 骨架上构建它。

我已经加载了三个模块:应用程序、前端和安全性。

Frontend 和 Security 是彼此重复的,但是,我已经彻底检查过并且没有引用旧代码(因为我确实复制了模块文件夹并重命名/重写了引用)。

该模块也加载在 application.config.php 中。

关于我所缺少的任何想法?

模块配置:

return array(
            'controllers' => array(
                    'invokables' => array(
                            'Security\Controller\Security' => 'Security\Controller\SecurityController',
                    ),
            ),

            'router' => array(
                    'routes' => array(
                            'security' => array(
                                    'type'    => 'segment',
                                    'options' => array(
                                            'route'    => '/security[/:action][/:id]',
                                            'constraints' => array(
                                                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                                    'id'     => '[0-9]+',
                                            ),
                                            'defaults' => array(
                                                    'controller' => 'Security\Controller\Security',
                                                    'action'     => 'index',
                                            ),
                                    ),
                            ),
                    ),
            ),

            'view_manager' => array(
                    'template_path_stack' => array(
                            'security' => __DIR__ . '/../view',
                    ),
            ),
);
4

4 回答 4

2

有几件事需要确保的是: -

你必须添加你的模块

  • application.config.php (你说你做到了。)
  • Security\Controller\Security 默认也必须相同(您已经拥有)
  • 还有一件事是您的文件夹结构.... -

只是为了检查你有一个 /MODULE/src/ MODULE /Controller/CONTROLLER_FILE_NAME.php

我希望这有帮助..

于 2012-10-13T23:51:12.430 回答
2

在遵循骨架应用程序教程(入门:骨架应用程序)时,我遇到了同样的问题。每当我在浏览器中访问专辑网址时(ZendSkeletonApplication/public/album在我的情况下),我都会收到一个 404 错误页面,但没有详细说明我为什么会得到 404。我不清楚我如何能够确定我为什么是当我仔细检查了所有内容并且非常确定我正确复制和配置了专辑模块时,得到了 404。事实证明,我的路线(module.config.php)中缺少斜杠。例如,我有'route' => 'album[/:action][/:id]'而不是'route' => '/album[/:action][/:id]'.

'Album\Controller\Albums'我只能通过拼写错误(例如在 invokables 值中设置而不是)故意导致错误来弄清楚这一点'Album\Controller\Album',这将导致显示堆栈跟踪,然后显示在请求中调用的 ZF2 类。我将继续拼写错误、测试,然后更正 module.config.php 的每个部分,直到我知道配置的哪一部分导致了错误。

我很确定这不是调试应用程序配置的最佳方式。

于 2012-10-14T12:56:44.737 回答
0

我知道这是一个旧帖子。但是,要确保您在模块顶部目录(与 Module.php 文件相同的目录)中有另一件事是其中包含“”的“autoload_classmap.php”文件<?php return array();?>

于 2013-03-28T21:22:27.263 回答
0

了解您的规则是否已正确添加到路由的简单提示,您可以检查任何工作模块内配置文件中的路由值,如下所示:

 $config         = $this->serviceLocator->get('config');
 var_dump($config);
于 2016-05-13T11:13:53.190 回答