Zend Framework:Flash Messenger,从模型中添加消息

时间:2010-03-15 15:21:32

标签: zend-framework

有关如何最好地从模型中向Flash信使添加消息的想法吗?

由于FlashMessenger是一个动作助手,这似乎是不可能的,因此显而易见的解决方案是在模型中创建一个内部消息对象,并将其返回给控制器,您可以使用addMessage()。但如果你想要返回别的东西,这就会失败。

另一个想法是这些内部消息的附加会话命名空间,然后在输出时与Flash Messenger命名空间消息合并?

任何人对此都有任何想法或经验?欢呼声。

2 个答案:

答案 0 :(得分:7)

您可以从模型中获取FlashMessenger:

$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
$messenger->addMessage('test message');

答案 1 :(得分:3)

两条路线都有效。

一个想法是将$ message数组添加到模型中,操作助手可以访问该数组以检索消息。这样您就可以一次返回多条消息。

另一种选择是使用Subject/Observer pattern。让您的模型实现Subject接口,当您需要输出消息时,notify观察者,例如flash messenger(你必须为它实现Observer接口)。