如何:使用$ message-> render();在typo3 v 4.5

时间:2013-11-20 19:49:22

标签: typo3 extbase

我需要显示一条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 感谢

2 个答案:

答案 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);
}