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');