Php 在ZF视图脚本中使用FlashMessenger和PartialLop
我有两个问题与FlashMessenger视图助手有关。这两个问题都是为了执行此代码: 我的行动方法:Php 在ZF视图脚本中使用FlashMessenger和PartialLop,php,zend-framework,Php,Zend Framework,我有两个问题与FlashMessenger视图助手有关。这两个问题都是为了执行此代码: 我的行动方法: private $_messages; // set to $this->_helper->FlashMessenger; in init() public function loginAction() { // > login validation < // Switch based on the result code switch ($
private $_messages; // set to $this->_helper->FlashMessenger; in init()
public function loginAction() {
// > login validation <
// Switch based on the result code
switch ($result->getCode()) {
// > snip several cases <
case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
$this->_messages->addMessage("That wasn't the right password.");
break;
case Zend_Auth_Result::SUCCESS:
$this->_messages->addMessage('Logged you in successfully. Welcome back!');
$this->_helper->Redirector('index', 'home');
break;
}
// >snip<
$this->view->messages = $this->_messages->getMessages();
$this->render();
}
但这对partiallop
没有好处,因为我需要获取消息(需要每个消息都是一个数组,包含'message'=>'messagestring'
键/值对)
是否有更好的方法,而不是在提交到视图之前重写数组?我将引用
10.8.4.4.1。导言
FlashMessenger帮助程序允许您
传递用户可能需要的消息
需要在下一个请求中查看。到
FlashMessenger使用
要存储的Zend_会话_命名空间
未来或下一个请求的消息
检索
基本上,这意味着您必须刷新页面才能看到消息
为PartialLop编辑:
你可以试试这个:
foreach ($array as $message) {
$newArray[]['message'] = $message;
}
但是你不必使用PartialLoop。您可以将其发送到Partial并在那里循环。甚至在您的视图中循环它。我想补充的是,您可以在添加到FlashMessenger的相同请求中检索flash消息。在这种情况下,您必须使用Zend\u Controller\u Action\u Helper\u FlashMessenger::getCurrentMessages()
如果是你的话,你就得换线了
$this->view->messages = $this->_messages->getMessages();
到
希望有帮助
foreach ($array as $message) {
$newArray[]['message'] = $message;
}
$this->view->messages = $this->_messages->getMessages();
$this->view->messages = $this->_messages->getCurrentMessages();