1

我无法解决的问题是 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',
            ),

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

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

4

1 回答 1

2

实例别名不打算在路由中使用,而是对 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',
                            ),
                        ),
                    ),
                ),
            ),
        ),

我建议你阅读 Akrabat 的入门教程

于 2012-05-17T15:59:05.470 回答