如何在 ZF2 中设置没有 di/实例/别名的路由


how to set route without di/instance/alias in zf2?

我无法解决的问题是 zend 框架 2 中的一条路由。

我使用zend骨架应用程序。我创建了控制器和适当的视图文件,就像在 zf1 中一样。如果我尝试从浏览器应用程序打开创建控制返回 404 返回代码,直到我添加别名:

<?php
return array(
    'di' => array(
        'instance' => array(
            'alias' => array (
                'login' => 'Application'Controller'LoginController',
                'logout' => 'Application'Controller'LogoutController',
                'user' => 'Application'Controller'UserController',
            ),

我应该将所有控制器文件添加到别名数组中。

如何在不添加别名的情况下制作默认路由?

实例别名不适用于路由,而是对 DI 有用的"快捷方式"。例如,假设您在模块事件上调用的方法中:

// get the di locator
$di = $e->getTarget()->getLocator();
// get instance by alias
$loginController = $di->get('login');

相反,要设置路由规则,您可以在配置文件中执行此操作:

// Setup for router and routes
return array(
    'di' => array(
        'instance' => array(
        ....
            // Setup for router and routes
        'Zend'Mvc'Router'RouteStack' => array(
            'parameters' => array(
                'routes' => array(
                    'default' => array(
                        'type'    => 'Zend'Mvc'Router'Http'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(
                                'controller' => 'Application'Controller'IndexController',
                                'action'     => 'index',
                            ),
                        ),
                    ),
                    'home' => array(
                        'type' => 'Zend'Mvc'Router'Http'Literal',
                        'options' => array(
                            'route'    => '/',
                            'defaults' => array(
                                'controller' => 'Application'Controller'IndexController',
                                'action'     => 'index',
                            ),
                        ),
                    ),
                ),
            ),
        ),

我建议你 阿克拉巴特的入门教程