愚蠢的问题:在我的代码中,我将视图中显示的所有消息收集在缓冲区中。在下面的代码中,如果我的Try{}失败,直接去Catch{},错误将被缓冲,但控制器不会有机会分配给视图,对吧?你们怎么解决这种情况?
MyController
{
//...
try {
// ... do something
$this->_messages[] = array('success', 'Thank You.');
}
catch (Exception $e) {
$this->_messages[] = array('error', 'Oops! There was an error.');
}
/**
* flush all buffered messages to the view
*/
$flashmsg = $this->_flashMessenger->getMessages();
if (!empty($flashmsg)) $this->_messages[] = $flashmsg[0];
$this->view->messages = $this->_messages;
}
我不喜欢这种方法!在我的应用程序中,如果某些东西进入catch意味着应用程序被破坏,那么记录错误并重定向到视图类型"Oops…对不起"!当我打印到Messages视图时,总是对应用程序流的内在逻辑有重要意义,为我决定消息的类型(成功或失败)而不是捕获!