2

$this->params()->fromRoute('param1')
在控制器中,我可以使用如何在 Module OnBootstrap() 函数中 从路由中获取参数?

namespace MyModule;

use Zend\EventManager\EventInterface;

class Module
{
    public function onBootstrap(EventInterface $event)
    {
        // here I need to get parameter from route
    }
}
4

1 回答 1

12

正如 user2257808 在他的评论中所说,onBootstrap 在路由发生之前被调用,所以没有任何 RouteMatch 可以获取。他建议附加到 EVENT_RENDER,在您的情况下这可能为时已晚。

我会做这样的事情,附加到MvcEvent::EVENT_DISPATCH.

MyModule\Module.php

class Module {
    public function onBootstrap(MvcEvent $e) {

        $e->getApplication()->getEventManager()->attach(MvcEvent::EVENT_DISPATCH,
            function($e){
               var_dump($e->getRouteMatch());
                exit;
            }
         );

    }
}
于 2013-04-26T05:30:07.970 回答