1

我一直在关注 Zend 的教程(http://www.youtube.com/watch?feature=player_embedded&v=EerB9bTvqrY)但是当我在我的项目中添加一个新模块时,我无法导航到它,是本教程中的说明不正确?

基本上,当我在 Zend Studio 中将一个新模块添加到我的 Zend Framework 项目时,我无法导航到它,我的新模块称为“交易”。我导航到 localhost/dealproject/deals 并收到错误 404。当导航到 localhost/dealproject/ 时,它会正确加载 zend 框架应用程序页面。

谢谢你的帮助。

模块.config.php

<?php
return array(
'controllers' => array(
    'invokables' => array(
        'Deals\Controller\Deals' => 'Deals\Controller\DealsController',
    ),
),
'router' => array(
    'routes' => array(
        'deals' => array(
            'type'    => 'Literal',
            'options' => array(
                // Change this to something specific to your module
                'route'    => '/deals',
                'defaults' => array(
                    // Change this value to reflect the namespace in which
                    // the controllers for your module are found
                    '__NAMESPACE__' => 'Deals\Controller',
                    'controller'    => 'Deals',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                // This route is a sane default when developing a module;
                // as you solidify the routes for your module, however,
                // you may want to remove it and replace it with more
                // specific routes.
                '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(
                        ),
                    ),
                ),
            ),
        ),
    ),
),
'view_manager' => array(
    'template_path_stack' => array(
        'Deals' => __DIR__ . '/../view',
    ),
),

);

4

2 回答 2

1

确保您已启用该模块~/config/application.config.php

'modules' => array(
    'Application',
    'Deals',
),
于 2013-04-01T02:50:25.323 回答
0

对我来说,路由配置看起来是正确的,它应该会显示结果。我注意到您localhost/dealproject/的 ZF2 应用程序的基本 URL ( ) 位于域根目录的子目录中。您可能知道所有请求都映射到应用程序的 index.php ( ~/public/index.php)。这是通过.htaccess文件中的一些配置完成的(在同一目录中)。

在示例 URL中www.example.com/blog,如果blogwww.example.com 根目录下的文件夹不存在,您将获得404 Page not found. 但是,如果没有找到目录,ZF2 的 .htaccess 会使 apache 调用域根目录中的 index.php(假设您使用 ZendSkeletonApplication)。

localhost/现在,由于您的localhost/dealproject/index.php不在域根目录(配置。localhost/dealproject/localhost/dealproject/dealsdealproject/dealslocalhost

我建议您将dealproject文件夹设为localhost. 这将使您能够像这样调用您的路由:localhost/deals并且 .htaccess 和 index.php 将被正确处理。

希望这可以帮助 :)

斯托扬

于 2013-04-01T19:04:55.873 回答