gpt4 book ai didi

zend-framework - 从 Zend Controller 插件中获取 View 对象

转载 作者:行者123 更新时间:2023-12-04 06:48:59 26 4
gpt4 key购买 nike

在我的 Controller 中,我有一个 postDispatch 来整合我的 FlashMessenger 消息:

public function postDispatch()
{
$messages = $this->_helper->getHelper ( 'FlashMessenger' )
->getMessages ();

if ( $this->_helper->getHelper ( 'FlashMessenger' )
->hasCurrentMessages () )
{
$messages = array_merge ( $messages, $this->_helper->getHelper ( 'FlashMessenger' )
->getCurrentMessages () );
$this->_helper->getHelper ( 'FlashMessenger' )
->clearCurrentMessages ();
}

$this->view->alert = $messages;
}

我想把它变成一个 Controller 插件。

更新:我意识到我为什么需要这个 - 我想在被 JSON 上下文调用时以 JSON 传递我的 flash 消息。除非将消息添加到 View 对象,否则我不会收到消息。

我能够将消息放入一个数组中,但我不知道如何将它们传递给 View :
class Plugin_FlashMessenger extends Zend_Controller_Plugin_Abstract
{
public function postDispatch($request)
{
$flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper ( 'FlashMessenger' );

$messages = $flashmessenger->getMessages ();
if ( $flashmessenger->hasCurrentMessages () )
{
$messages = array_merge ( $messages, $flashmessenger->getCurrentMessages () );
$flashmessenger->clearCurrentMessages ();
}

// THIS LINE IS WRONG. HOW DO I SEND $messages TO THE VIEW?
$this->view->alert = $messages;
}
}

奖金问题 - 这是实现这一目标的正确方法吗?谢谢!

最佳答案

我在搜索同样的东西时找到了你的帖子。基于 this thread ,有两种简单的方法可以实现。

一:如果您的 View 在引导期间初始化( resources.view[] = 在您的 application.ini 中),您可以简单地调用:

$view = Zend_Controller_Front::getInstance()
->getParam('bootstrap')
->getResource('view');

二:如果您的 View 在引导期间未初始化:
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
$viewRenderer->initView();
}
$view = $viewRenderer->view;

关于zend-framework - 从 Zend Controller 插件中获取 View 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com