よりも多くのルーティング情報が利用可能である必要がある場所で、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);
コントローラー名に何を呼び出す必要がありますか? クラスのことではありませんが、コントローラ クラスが の場合Application\Controller\MyController
、URL にあるものを受け取りmy-controller
たいとします。また、ルーティングがより複雑になる可能性があるため、URL に依存したくないため、URL 自体で文字列の照合を行いたくありません。
また、知っている場合は、アクション名も取得する方法を教えてください。