Zend framework Zend框架-模块路由

Zend framework Zend框架-模块路由,zend-framework,Zend Framework,我有一个叫做用户的模块。我有一个索引控制器,在索引控制器类中有一个名为part1Action()的操作 我希望能够通过路径/user/index/part1访问part1Action()操作,但我最终将进入/user/index/index操作 我从模块/控制器的角度设置了其他模块,但我没有尝试访问除索引操作之外的其他操作,因此这是我第一次尝试路由到索引操作以外的其他操作 更多信息,我的application.ini中有: resources.frontController.controller

我有一个叫做用户的模块。我有一个索引控制器,在索引控制器类中有一个名为part1Action()的操作

我希望能够通过路径/user/index/part1访问part1Action()操作,但我最终将进入/user/index/index操作

我从模块/控制器的角度设置了其他模块,但我没有尝试访问除索引操作之外的其他操作,因此这是我第一次尝试路由到索引操作以外的其他操作

更多信息,我的application.ini中有:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""
autoloaderNamespaces[] = "Users_"
哪里出错了?

第1部分操作将不是有效的操作名称,因为它包含一个数字。将动作命名为partOneAction。如果你真的想在你的url中使用一个数字,那么设置一个路由规则,就像这样

$front->getRouter()->addRoute(
    'part-1',
    new Zend_Controller_Router_Route_Static(
        '/user/index/part1/',
        array('module' => 'users', 'controller' => 'index', 'action' => 'part-one')
    )
);

不过老实说,我可能会对我的模块进行一些不同的设置。我假设这是针对某种多页表单的

因此:

模块 用户 控制器 {某个有意义的名称}Controller.php 在{某个有意义的控制器名称}controller.php的内部

public function {some-meaningful-action-name}Action() { $part = $this->getRequest()->getParam('part', 1); } 公共函数{某些有意义的操作名称}操作() { $part=$this->getRequest()->getParam('part',1); }
这样,您的url将是/user/{some有意义的控制器名称}/{some有意义的操作名称}/part/{some number}

好的,我仍然缺少一些基本内容,因为它不起作用。我已将用户模块的索引控制器中的操作名称更改为partOneAction()。我希望在/user/index/part-one中找到它,但我仍然在执行user/index/index操作。我不明白它是如何工作的,在我的默认模块IndexController(application/modules/default/IndexController)中,我放了一个testAction(),可以通过/index/test访问它,但是如果我把testAction()放在另一个模块控制器中(例如,application/modules/user/IndexController)我无法从/users/index/test访问操作。我缺少什么?发布你的application.ini和bootstrap。我认为这是配置错误。猜测:resources.modules=[]可能是您的ini中缺少,可能是自动加载器配置错误,或者是默认控制器问题…但我一站起来就会看到我提出了另一个问题()特别是在我更改了操作名称以排除数字后的路由问题。结果表明,我的ACL检查插件都是错误的,并且没有包含auth用户请求的资源。 /user/{some-meaningful-controller-name}/{some-meaningful-action-name}/part/{some-number} /user/{some-meaningful-controller-name}/{some-meaningful-action-name}/part/{some-number}