我无法解决的问题是 zend 框架 2 中的一条路由。
我使用zend骨架应用程序。我创建了控制器和适当的视图文件,就像在 zf1 中一样。如果我尝试从浏览器应用程序打开创建控制返回 404 返回代码,直到我添加别名:
<?php
return array(
'di' => array(
'instance' => array(
'alias' => array (
'login' => 'ApplicationControllerLoginController',
'logout' => 'ApplicationControllerLogoutController',
'user' => 'ApplicationControllerUserController',
),
我应该将所有控制器文件添加到别名数组中。
如何在不添加别名的情况下制作默认路由?
实例别名不适用于路由,而是对 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
'ZendMvcRouterRouteStack' => array(
'parameters' => array(
'routes' => array(
'default' => array(
'type' => 'ZendMvcRouterHttpSegment',
'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' => 'ApplicationControllerIndexController',
'action' => 'index',
),
),
),
'home' => array(
'type' => 'ZendMvcRouterHttpLiteral',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'ApplicationControllerIndexController',
'action' => 'index',
),
),
),
),
),
),
我建议你 阿克拉巴特的入门教程