在CakePHP中操作$ session-> flash()视图输出

时间:2011-01-24 13:51:35

标签: php cakephp

我希望在CakePHP应用程序中操作$session->flash()输出,目前我有一个非常简单的默认实现,显示flash和auth错误消息:

<?php
    $session->flash();
    $session->flash('auth');
?>

这会生成一个<div>,其中包含ID和类,其中包含消息。我想要做的是包装/替换生成的HTML,特别是一些jQuery UI类,但包装很难,因为我无法判断何时会显示实际的消息所以我最终得到一个空的但是样式错误div。我真正需要包装工作的是检入$ session-&gt; flash()返回任何内容,但是当用empty()检查时,我得到'不能在写上下文中使用方法返回值';

据我所知,生成的HTML 硬编码进入会话助手!如果你能解决如何在auth消息和普通flash消息上单独更改类的问题,可以获得奖励积分。

3 个答案:

答案 0 :(得分:2)

要检查是否要刷新消息,请将其放入布局

<?php if($session->check('Message')){ echo $this->Session->flash();} ?>

当您将消息设置为闪烁时,可以设置CSS属性

http://book.cakephp.org/view/1311/Methods#setFlash-1313

答案 1 :(得分:0)

读取setFlash()并使用该方法定义自己元素的其他参数。然后你就可以随心所欲地做。

http://book.cakephp.org/view/400/setFlash

答案 2 :(得分:0)

我找到的解决方案是将$session->flash()设置为变量,然后使用empty()进行检查,以便在必要时回显相应的<div>

$flashMessage = $this->flash();
$authMessage = $this->flash('auth');

..然后检查每个是否为空。当然我的内部有一些不必要的HTML,但就auth消息而言,我认为这是我能够灵活的。