ページがレンダリングされる前に実行されるコードがModule.php
のようにあります。コントローラはInjectApplicationEventInterfaceを実装する必要があります
$eventManager->attach(MvcEvent::EVENT_RENDER, function(MvcEvent $event) {
/** @var ServiceManager $sm */
$sm = $event->getParam('application')->getServiceManager();
$logger = $sm->get(LogService::class)->getLogger();
$themeResolver = $sm->get(ThemeResolveService::class);
$df = $sm->get(DataFetchService::class);
$params = $sm->get('ControllerPluginManager')->get('params');
$security = $sm->get(SecurityService::class);
try {
$cleanedParams = $security->clean($params->fromRoute());
} catch (\Exception $e) {
echo $e->getMessage();
$logger->info($e->getMessage());
die();
}
/** theme resolving code **/
}
私が持っている問題は、この行を次のとおりです。
$cleanedParams = $security->clean($params->fromRoute());
$params->fromRoute()
は、ほとんどの時間の作品が、私は、サードパーティのAPIから自分のアプリケーションを呼び出すときに、時々私はこのエラーを取得します。
Controllers must implement Zend\Mvc\InjectApplicationEventInterface to use this plugin
私は、呼び出しが異なる何も表示されません。私はこのエラーが何を表しているのか明確にする必要があります。アプリケーションの設計を変更する必要があれば、そうしなければなりません。あなただけコントローラ内それを使うべき理由