イベント中にビューレンダラーに変数を割り当てようとしていますが、render event
値を生成していません。
に添付したイベントがありrender event
ますApplication Module
。This is a Zend Framework 3 Application中に呼び出されるメソッドもありますがrender event operation
、フレームワークが非常に新しいため、より公開するために Zend Framework 2 にタグを付けました。ここにあります
namespace Application;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$app = $e->getParam('application');
$app->getEventManager()->attach('render', array($this, 'setAssignRouteVariables'));
}
public function setAssignRouteVariables(MvcEvent $e)
{
$matches = $e->getRouteMatch();
$action = $matches->getParam('action');
$controller = $matches->getParam('controller');
$designHandler = $e->getApplication()->getServiceManager()->get('DesignHandler');
$designHandler->getPhprenderer()->controllerName='testcontroller';
$designHandler->getPhprenderer()->actionName='testaction';
}
}
ご覧のとおり、クラスgetPhprenderer()
を使用してメソッドを呼び出しています。DesignHandler
このメソッドは のインスタンスを返します\Zend\View\Renderer\PhpRenderer
。いずれにせよ、この後、変数をレンダラー オブジェクトに割り当てます。
これに続いて、in my layout - application/view/layout/layout.phtml
私はこれを行います:
<script type="text/javascript">
var currentController = '<?php echo $this->controllerName;?>';
var currentAction = '<?php echo $this->actionName;?>';
</script>
これにblank values
入ります。
ここで間違っていることは何ですか?
現在の結果は次のとおりです。
<script type="text/javascript">
var currentController = '';
var currentAction = '';
</script>