我有一个名为users的模块。在里面我有一个索引控制器,在索引控制器类中有一个名为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_"
我哪里错了?
答案 0 :(得分:2)
part1Action 不会是有效的动作名称,因为它包含一个数字。将操作命名为 partOneAction 。如果你绝对想在你的网址中使用一个数字,那就设置一个像这样的路由规则
$front->getRouter()->addRoute(
'part-1',
new Zend_Controller_Router_Route_Static(
'/user/index/part1/',
array('module' => 'users', 'controller' => 'index', 'action' => 'part-one')
)
);
$front->getRouter()->addRoute(
'part-1',
new Zend_Controller_Router_Route_Static(
'/user/index/part1/',
array('module' => 'users', 'controller' => 'index', 'action' => 'part-one')
)
);
老实说,我可能会稍微改变一下我的模块。我假设这是一种多页形式的某种形式?
这样:
modules user controllers {some-meaningful-name}Controller.php
在{some-signific-controller-name}内部的Controller.php
public function {some-meaningful-action-name}Action() { $part = $this->getRequest()->getParam('part', 1); }
您的网址将是
/user/{some-meaningful-controller-name}/{some-meaningful-action-name}/part/{some-number}