У вас нет доступа к менеджеру службы в этом поскольку он вводится после создания объекта.
Вы всегда можете переместить ваш код, чтобы срабатывать onDispatch(), а не в застройщик:
/**
* Execute the request
*
* @param MvcEvent $e
* @return mixed
* @throws Exception\DomainException
*/
public function onDispatch(MvcEvent $e)
{
// do something here
// or you could use the events system to attach to the onDispatch event
// rather than putting your code directly into the controller, which would be
// a better option
return parent::onDispatch($e);
}
Я просто хотел бы использовать события, чтобы прикрепить что когда-либо вам нужно, а не с помощью контроллера
module.php
/**
* Initialize
*
* @param \Mis\ModuleManager
*/
public function init(ModuleManager $manager)
{
$events = $manager->getEventManager();
$sharedEvents = $events->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
/* @var $e \Zend\Mvc\MvcEvent */
// fired when an ActionController under the namespace is dispatched.
$controller = $e->getTarget();
$routeMatch = $e->getRouteMatch();
/* @var $routeMatch \Zend\Mvc\Router\RouteMatch */
$routeName = $routeMatch->getMatchedRouteName();
// Attach a method here to do what you need
}, 100);
}
Несмотря на тот возраст ответить, я хотел бы знать, как только вы сделали какую-то работу в module.php «s '// Прикрепление метод здесь, чтобы делать то, что вы need' с помощью метод Как получить данные/данные, переданные целевому контроллеру? – inckka