我已经设法订阅了onDispatch()
我的方法,Application\Module.php
其中路由信息应该比onBootstrap()
.
public function onBootstrap(MvcEvent $e) {
$em = $e->getApplication()->getEventManager();
$em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch'));
}
public function onDispatch(\Zend\Mvc\MvcEvent $e) {
//$controllerName = /* ... ? */;
$e->getViewModel()->setVariables(
array('controllerName'=> $controllerName,
'actionName' => $actionName)
);
return parent::onDispatch($e);
我需要调用控制器名称吗?我的意思不是类,而是说,如果我的控制器类 if Application\Controller\MyController
,我想接收my-controller
在 URL 中可以找到的内容。我也不想对 URL 本身进行字符串匹配,因为我不想依赖它,因为路由可能更复杂。
另外,如果您知道,请告诉我如何获得动作名称。