Cakephp - показывать флэш-сообщения в разных позициях на странице просмотра

у меня есть файл представления, в котором есть две формы в разных положениях, скажем,

одна форма находится в левом углу, а другой в правом углу.

после успешной отправки формы, сообщение об успехе мигает с помощью

$this->Session->setFlash();

проблема в том, что если Form1 запускается, я хочу показать вспышку сообщения под Form1 ie в левом углу.

или если Form2 запускается, я хочу показать вспышку сообщения под Form2 ie справа угол.

но прямо сейчас оба сообщения отображаются вверху, потому что я поместил в макет

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

Я хочу изменить это, но не знают, как этого добиться.... :'(

3 ответов


когда вы называете setFlash можно указать значение ключа. Например,

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

затем вы можете распечатать вспышку над каждой формой. Он будет отображаться только в том случае, если указанный ключ имеет значение.

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

Вы можете найти более подробную информацию здесь.


удалить echo $this->Session->flash(); от дефолта.ctp

затем добавьте его в другую форму в разных подразделениях

, например В Form1

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

В Form2

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

надеюсь, что это помогает


Вы можете сделать также, как это

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

перед этим вам нужно загрузить flash в контроллер, как это

$this->loadComponent('Flash');