代码之家  ›  专栏  ›  技术社区  ›  brettkelly

在CakePHP 1.2中自定义$session->flash输出的样式和位置

  •  1
  • brettkelly  · 技术社区  · 15 年前

    <?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; ?>
    

    理想的行为是,如果要显示flash消息,那么它将显示在DOM中的上述位置,以便按照我的意愿对其进行样式设置和定位。

    <body>

    我尝试将输出缓冲区刷新到视图中的一个变量中,并对此进行响应,但没有效果。我还读到一些人尝试使用命名键来指示他们想要显示的特定消息,但这在这里并不合适,因为我想要显示的文本显示在错误的位置。

    任何帮助都将不胜感激-谢谢!

    2 回复  |  直到 14 年前
        1
  •  1
  •   dr Hannibal Lecter    15 年前

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

    $session->flash();
    

    因此,闪光灯在那里渲染并清除。这就是为什么它不会在元素中呈现。

    ~/app/views/layouts/default.ctp (或其他,如果您没有使用默认设置)并让我们知道它是否有帮助。

        2
  •  1
  •   Rakesh Kumar    13 年前

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