Php zendframework 2布局';s控制器
我是zend framework 2的新手,无意中发现了一个我无法找到答案的问题: 我有一个layout.phtml,我想在加载布局之前让一个(布局)控制器从我的db中提取一些垃圾并将其传递给要渲染的布局,因此无论是我的应用程序模块还是正在运行的任何其他模块,布局都将始终使用相同的控制器 我的模块是: --模块 --应用 -- --srcPhp zendframework 2布局';s控制器,php,zend-framework2,Php,Zend Framework2,我是zend framework 2的新手,无意中发现了一个我无法找到答案的问题: 我有一个layout.phtml,我想在加载布局之前让一个(布局)控制器从我的db中提取一些垃圾并将其传递给要渲染的布局,因此无论是我的应用程序模块还是正在运行的任何其他模块,布局都将始终使用相同的控制器 我的模块是: --模块 --应用 -- --src 谢谢 如果要从数据库中获取一些数据并传递到布局,请在Module.php中尝试以下操作: public function onBootstrap(MvcEve
谢谢 如果要从数据库中获取一些数据并传递到布局,请在Module.php中尝试以下操作:
public function onBootstrap(MvcEvent $e)
{
//...
$application = $e->getApplication();
$sm = $application->getServiceManager();
$application->getEventManager()->getSharedManager()
->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch',
function($e) use ($sm) {
$dbResult = $sm->get('YourModule\Model\FooTable')->bar();
$sm->get('ControllerPluginManager')->getController()->layout()->dbResult = $dbResult;
}
, 2
);
//...
}
在layout.phtml中,对数据库结果使用$this->dbResult
-- ...
--layout
layout.phtml <-- where i hold my layout
-- ... <-- shop module that uses the application's layout
'view_manager' => array(
....
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
public function onBootstrap(MvcEvent $e)
{
//...
$application = $e->getApplication();
$sm = $application->getServiceManager();
$application->getEventManager()->getSharedManager()
->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch',
function($e) use ($sm) {
$dbResult = $sm->get('YourModule\Model\FooTable')->bar();
$sm->get('ControllerPluginManager')->getController()->layout()->dbResult = $dbResult;
}
, 2
);
//...
}