Php ZF2路由无法正常工作
我有一个基于提供的框架的ZF2项目。我使用Php ZF2路由无法正常工作,php,zend-framework2,Php,Zend Framework2,我有一个基于提供的框架的ZF2项目。我使用ZFTool制作了一些控制器和操作。问题是路由器不接受URL。它说:路由无法匹配请求的URL 注意事项: 该项目位于Apache虚拟主机上 将创建控制器: $ zf.php create controller user Application The controller user has been created in module Application. $zf.php create action register user Applicat
ZFTool
制作了一些控制器和操作。问题是路由器不接受URL。它说:路由无法匹配请求的URL
注意事项:
$ zf.php create controller user Application
The controller user has been created in module Application.
$zf.php create action register user Application
Creating action 'register' in controller 'Application\Controller\user'.
Created view script at ./module/Application/view/application/user/register.phtml
The action register has been created in controller Application\Controller\user.
// ...
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
// The following is a route to simplify getting started creating
// new controllers and actions without needing to create a new
// module. Simply drop new controllers in, and you can access them
// using the path /application/:controller/:action
'application' => array(
'type' => 'Literal',
'options' => array(
'route' => '/application',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'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(
),
),
),
),
),
),
),
分段的
controller/action
路由在application
下注册为子路由,这意味着您必须在前面键入application:www.mysite.local.com/application/user/register
。
如果您不想这样做,您必须更改路由定义。您尝试访问哪个uri?@BramGerritsen
www.mysite.local.com/user/register
。该条目已添加到/etc/hosts
,并且www.mysite.local.com/
起作用。/application/user/register
不起作用,但错误消息已更改:请求的控制器无法映射到现有的控制器类application\controller\user(解析为无效的控制器类或别名:Application\controller\User
。有趣的事实:/Application
和/Application/index
工作正常。您需要使用module.config.php中的controllers.invokables键或使用getControllerConfig()在controller manager.r中注册控制器。)方法。phpYes您可以去掉它。只需阅读并使用路由器配置。我更喜欢只定义我的所有路由,而不使用magic:controller/:action
路由。您可以演示一个示例吗?我很高兴手动添加控制器,尽管找不到如何删除magic。(尝试了一百万种组合)您还需要定义控制器类所在的命名空间,请参阅我更新的要点。