Добавьте элемент управления отклонением в вывод session-flash() в CakePHP

StackOverflow https://stackoverflow.com/questions/128011

  •  02-07-2019
  •  | 
  •  

Вопрос

В CakePHP 1.2 приложение, которое я использую

<?php $session->flash();?>

выводить сообщения типа "Запись отредактирована".Это отлично работает.

Однако я хочу добавить ссылку под названием "Отклонить", которая приведет к исчезновению сообщения.Я знаю, как создать ссылку, но я не знаю, как вставить в выходные данные сообщения flass.

Флэш-сообщение оборачивается в DIV tag.Я хочу вставить свой код отклонения в этот div, но я не знаю как.

Это было полезно?

Решение 3

Разобрался в этом:Создайте новый макет в папке layouts (макеты):

layouts/message.ctp

В этом макете включите вызов для вывода содержимого:

<?php echo $content_for_layout; ?>

Затем, когда вы установите флэш-сообщение, укажите макет для использования:

$this->Session->setFlash('Your record has been created! Wicked!','message');

Другие советы

Вы хотите использовать установить вспышку функция.Если вы передадите setflash пустую строку для $default, это не обернет ваше сообщение в div, а просто сохранит его как есть.Таким образом, вы можете отобразить любую разметку, какую захотите, или, как написал Джастин, вы можете использовать другую страницу просмотра для своего сообщения, чтобы не смешивать свой вид и контроллеры.

Вы можете добиться этого с помощью jQuery:

$(document).ready(function() {

    $("#flashMessage").each(function() {
        $close = $("<span class='close'>Close</span>");
        $close.click(function () {
            $(this).parent().hide("slow");
        });
        $(this).append($close);
    });

});

Вам нужно будет немного приукрасить это с помощью CSS, но я уверен, что вы поняли идею.

стандартный способ сделать это - создать flash.ctp в вашем /app/views /layouts.Это переопределит файл flash.ctp по умолчанию, который вы можете найти в /cake/libs/view/layouts.Таким образом, вам не нужно использовать дополнительный параметр.

кстати:это работает для всех стандартных представлений и макетов CakePHP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top