0

我越来越:

发生 404 错误

网页未找到。请求的 URL 无法通过路由匹配。

我的module.config.php文件是:

'router' => array(
    'router' => array(
        'Test' => array(
            'type' => 'Segment',
            'options' => array(
                //http://localhost/Test/Test
                'route' => '/Test[/[:action]]',
                'constraints' => array(
                'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
             ),
             'defaults' => array(
                 'controller' => 'Test\Controller\Test',
                 'action' => 'Test'
              ),
          ),
      ),
   ),
),

请帮忙,我是 Zend Framework 2 的新手!

4

6 回答 6

3

您应该在 ZendSkeletonApplication 中使用类似 Application 模块的配置:

'router' => array(
    'routes' => array(
        'test' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/book',
                'defaults' => array(
                    '__NAMESPACE__' => 'Test\Controller',
                    'controller'    => 'Test',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                '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(
                        ),
                    ),
                ),
            ),
        ),
    ),
),

您只需添加以下代码:

'test' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '[/:action][/:id]',
                        'constraints' => array(
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'     => '[0-9]*',
                        ),
                        'defaults' => array(
                            '__NAMESPACE__' => 'Test\Controller',
                            'controller'    => 'Test',
                            'action'        => 'index',
                        ),
                    ),
                ),

将此代码添加到 'child-routes' 键,然后您将访问 url:localhost/:controller_name/:action_name/:id(例如: http: //zf.dev/test/indexhttp://zf .dev/test/add/1)。现在它的工作!此代码可以修复 zf2 文档中教程的错误 404。

于 2014-04-22T13:37:14.503 回答
2

你有一个错字,试试这个:

'router' => array(
    'routes' => array(

路由而不是路由器两次..

于 2013-02-19T15:25:35.023 回答
1

实现修复它,我缺少字母“d”,因此:Zend\Loader\StandarAutoloader 我添加了“d”:Zend\Loader\StandardAutoloader。问候朋友。提示:Zend Studio 10 和他的 de ZF2 版本非常适合这一刻!

于 2013-02-20T06:48:46.537 回答
0

1.您还应该检查application.config.php 并将您的模块名称添加到 RETURN 数组中。

return array(    
    'modules' => array(
        'Application',
        'your_module',
        .....    
 ),

2.如果没有。检查路由数组module.config.php

于 2014-04-17T10:51:37.473 回答
0

请检查 .htaccess 文件和 index.php 文件。如果这些存在于公用文件夹中,则必须使用 url 作为

 http://localhost/public/Test/Test.

您的代码几乎是正确的。安德鲁很好地指导了你。让我知道你的回应。

于 2013-02-19T16:05:01.097 回答
0

我建议还检查缓存配置文件的数据文件夹,在开发安装中缓存的配置文件也可能导致此问题。删除数据/缓存中的文件并尝试。

PS:如果您刚开始尝试使用 zend 站点上的博客模块,它适用于初学者,并且更新了新版本。

https://framework.zend.com/manual/2.4/en/in-depth-guide/first-module.html

于 2016-08-01T09:36:18.857 回答