我需要显示一条Flash消息但该消息被其他扩展程序吞噬,所以我可以这样做:
在我的控制器中:
$message = t3lib_div::makeInstance('t3lib_FlashMessage', 'Valid.', 'Message Header', t3lib_FlashMessage::OK, FALSE );
$message->render();
echo "<br/>".__FUNCTION__.__LINE__."<br/>";
$this->redirect('validate_success');
并在我的页面上的某处显示消息,但是哪里有什么标签?或者我应该完全不同地处理消息的传递?
我使用的是typo3 v 4.5.3 extbase 1.3 感谢
答案 0 :(得分:2)
如果您使用$this->redirect()
重定向,则同一操作中的echo
将永远不会出现。
在TYPO3 4.5中正确使用FlashMessage
在你的控制器/动作中:
$this->flashMessageContainer->add("Your message body", "Your message header", t3lib_FlashMessage::OK);
这会将FlashMessage添加到一个容器中,该容器包含全局范围内的所有FlashMessages。
在您重定向到的操作的流体模板中:
<f:flashMessages renderMode="div" />
或者,您可以使用renderMode="ul"
。
答案 1 :(得分:0)
我现在就是这样做的:
$this->redirect('validate_failed', 'Coupon', 'coupons', array('coupon' => $result, 'filename' => $filename, 'message' => 'Expired.'));
避免整个flashmessage事情并传递我想要的其他东西。
这是我的couponcontroller方法捕获重定向:
/**
* action validate
* @param Tx_Coupons_Domain_Model_Coupon $coupon
* @param string $filename
* @param string $message
* @return void
*/
public function validate_failedAction(Tx_Coupons_Domain_Model_Coupon $coupon = NULL, $filename = '', $message = '') {
$this->view->assign('coupon', $coupon);
$this->view->assign('filename', $filename);
$this->view->assign('message', $message);
}