【问题标题】:Cakephp - Show flash messages at different positions in the view pageCakephp - 在视图页面的不同位置显示 Flash 消息
【发布时间】:2013-01-23 19:30:37
【问题描述】:

我有一个视图文件,其中在不同的位置有两种形式,例如,

一个表格在左边,另一个在右边。

一旦表单提交成功,就会显示成功消息

$this->Session->setFlash();

问题是如果 Form1 被触发,我想在 Form1 下显示消息闪烁,即在左下角。

或者如果 Form2 被触发,我想在 Form2 下显示消息闪烁,即在右上角。

但是现在两条消息都显示在顶部,因为我已经放入了布局

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

我想改变这一点,但不知道如何实现这一点.... :'(

【问题讨论】:

    标签: php cakephp cakephp-2.0


    【解决方案1】:

    当您调用setFlash 时,您可以提供一个键值。例如,

    $this->Session->setFlash('This message is for form 1.', 'default', array(), 'form1');
    

    然后您可以打印每个表单上方的闪光灯。只有当指定的键有值时才会显示。

    <?php echo $this->Session->flash('form1') ?>
    

    您可以找到更多信息here

    【讨论】:

    • 哇......太棒了......这就像一个魅力......谢谢@Lawrence Barsanti
    【解决方案2】:

    从 default.ctp 中删除 echo $this-&gt;Session-&gt;flash();

    然后将其添加到不同部门的不同表格中

    例如 在 Form1 中

    <div class="leftflash">
    <?php echo $this->Session->flash();?>
    </div>
    

    在 Form2 中

    <div class="rightflash">
    <?php echo $this->Session->flash();?>
    </div>
    

    希望对你有帮助

    【讨论】:

    • 简单地把 $this->Session->flash();正如 Lawrence Barsanti 所说,我们需要提供一个关键值……
    【解决方案3】:

    你也可以这样做

    <?php echo $this->Flash->render(); ?>    
    

    在此之前,您需要像这样在控制器中上传 Flash

    $this->loadComponent('Flash');       
    

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      相关资源
      最近更新 更多