自定义$session的样式和位置->;闪光灯';在CakePHP 1.2中的输出

自定义$session的样式和位置->;闪光灯';在CakePHP 1.2中的输出,php,cakephp,cakephp-1.2,Php,Cakephp,Cakephp 1.2,我正在使用CakePHP 1.2版(最新版本)编写一个简单的web应用程序,在显示会话助手的flash消息时遇到问题。在我的布局中,存在以下代码: <?php echo $this->renderElement('flash'); ?> 这将呈现以下元素: <?php if($session->check('Message.flash')): ?> <?php $class = isset($error) ? 'contentError'

我正在使用CakePHP 1.2版(最新版本)编写一个简单的web应用程序,在显示会话助手的flash消息时遇到问题。在我的布局中,存在以下代码:

<?php echo $this->renderElement('flash'); ?>

这将呈现以下元素:

<?php if($session->check('Message.flash')): ?>
     <?php $class = isset($error) ? 'contentError' : 'contentSuccess'; ?>
     <div class="contentBlockWrapper <?php echo $class; ?>">
         <div class="contentBlock">
             <div id="flashMessage" class="flash">
                 <?php $session->flash(); ?>
             </div>
         </div>
     </div>
<?php endif; ?>


我想你的布局中可能有一个剩余部分

$session->flash();
因此,闪光灯在那里渲染并清除。这就是为什么它不会在元素中呈现


请检查您的
~/app/views/layouts/default.ctp(如果您没有使用默认设置,请检查其他设置),并告知是否有帮助。

确保如果在控制器中调用setFlash()时使用了转换函数,则将“true”作为第二个参数传递给它。像这样:

$this->Session->setFlash(_uu('mymessagehere',TRUE))


否则,消息将被回显,而不会返回!您只会看到它被预先添加到页面的HTML代码中,发送到setFlash的消息将是未定义的,因此不会显示在您期望的位置。

您是说,无论您在何处调用呈现元素,cake都会将其放在body标记之后?在我的应用程序中(刚刚测试过),只要我有$session->flash调用,它就会呈现它(查看DOM中生成的源代码)。你确定你的布局正确吗?您是否会发布布局视图(使用bin.cakephp.org并留下链接)。谢谢我想知道这是否是因为我把整个混乱都放在一个元素中,而不是视图本身。我将尝试将其移出元素,看看是否有效-感谢您的反馈!