1

我一直在查看文档,但我似乎无法找到一种方法来做到这一点。我知道我可以使用 headScript 将样式表添加到单个视图,但我想将样式表添加到控制器中的所有操作。

有人做过吗?我确信这是一项简单的任务。

谢谢

4

1 回答 1

2

您需要做的是挂钩dispatch事件,并根据分派的控制器类型设置适当的布局(推荐)。您也可以直接修改视图并添加所需的资产。

这可以通过在您的Module类中使用以下代码来实现:

<?php
namespace App;

class Module
{
    public function onBootstrap(MvcEvent $event)
    {
        $event->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Stdlib\DispatchableInterface', MvcEvent::EVENT_DISPATCH, function (MvcEvent $event)
        {
            $application = $event->getApplication();
            $services = $application->getServiceManager();
            $view = $services->get('ViewRenderer');
            $controller = $event->getTarget();
            if ($controller instanceof \App\Controller\Entry)
            {
                $controller->layout('layout/app/entry');
                // -- OR --
                $view->headStyle()->appendStyle('body{background:red}');
            }
        }, 100);
    }
}

我希望这回答了你的问题!

于 2013-04-18T22:14:17.007 回答