Мне интересно, есть ли правильный способ включить HTML в функцию setFlash () компонента Session.
В основном у меня есть этот интерфейс администратора на веб-сайте электронной коммерции, который позволяет администраторам создавать и редактировать "магазины", найденные на веб-сайте. После сохранения «магазина» я бы хотел, чтобы CakePHP отображал что-то вроде «Ваш магазин был успешно сохранен. Вернуться к индексу магазина». "Вернуться к индексу магазина" будет ссылка. В настоящее время я использую старый добрый HTML, например:
$this->Session->setFlash("Shop has been successfully published. <a href=\"...\">Return to Shop Index</a>");
Работает, но это HTML в контроллере, что я считаю "плохой вещью".
Спасибо!
EDIT:
Спасибо @YonoRan за решение. Пропустил это в документации CakePHP. Вот что я сделал:
1) Создан новый элемент session_flash_link.ctp
в app/views/elements
.
2) Добавлен следующий код в session_flash_link.ctp
:
<div id="flashMessage" class="message">
<?php
echo $message;
echo $this->Html->link($link_text, $link_url, array("escape" => false));
?>
</div>
3) Код в контроллере:
$this->Session->setFlash("Shop has been successfully saved. ", "session_flash_link", array(
"link_text" => "Return to Shop Management »",
"link_url" => array(
"controller" => "shops",
"action" => "manage",
"admin" => true
)
));