我一直在查看文档,但我似乎无法找到一种方法来做到这一点。我知道我可以使用 headScript 将样式表添加到单个视图,但我想将样式表添加到控制器中的所有操作。
有人做过吗?我确信这是一项简单的任务。
谢谢
我一直在查看文档,但我似乎无法找到一种方法来做到这一点。我知道我可以使用 headScript 将样式表添加到单个视图,但我想将样式表添加到控制器中的所有操作。
有人做过吗?我确信这是一项简单的任务。
谢谢
您需要做的是挂钩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);
}
}
我希望这回答了你的问题!