1
我一直在查看文檔,我似乎無法找到一種方法來執行此操作。我知道我可以使用headScript將樣式表添加到單獨的視圖中,但是我想向樣式表中的所有操作添加樣式表。Zend Framework 2 - 向控制器添加樣式
有沒有人這樣做呢?我相信這是一個簡單的任務。
感謝
我一直在查看文檔,我似乎無法找到一種方法來執行此操作。我知道我可以使用headScript將樣式表添加到單獨的視圖中,但是我想向樣式表中的所有操作添加樣式表。Zend Framework 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);
}
}
我希望這回答您的問題!
因此,這會將整個佈局應用於控制器(以及其所有動作)?它可以工作,但這似乎有點矯枉過正,只是將一個樣式表添加到給定控制器的所有操作中。我很難相信他們會爲版本2帶走這個功能(在版本1中這很簡單) – aserwin
我編輯了我的答案,以顯示如何直接修改資產而不必重複整個佈局。 – radnan
非常好...比我想象的更簡單。謝謝你的更新。 – aserwin