CakePHP 1.2 应用中,我正在使用

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

输出“Record edited”等消息。它工作得很好。

但是,我想添加一个名为“Dismiss”的链接。这将淡出消息。我知道如何构建链接,但我不知道如何插入flass消息的输出。

flash消息将自身包装在 DIV标记中。我想将我的解雇代码插入该div,但我不知道如何。

有帮助吗?

解决方案 3

想出来: 在layouts文件夹中创建一个新布局:

layouts/message.ctp

在该布局中,包括输出内容的调用:

<?php echo $content_for_layout; ?>

然后,当您设置flash消息时,请指定要使用的布局:

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

其他提示

您想使用 setflash 功能。如果你传递setflash为$ default的空字符串,它将不会将你的消息包装在div中,只是按原样存储它。通过这种方式,您可以显示所需的任何标记,或者Justin发布后,您可以使用其他视图页面来显示消息,这样就不会混淆视图和控制器。

您可以使用jQuery实现此目的:

$(document).ready(function() {

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

});

你需要用一点CSS来完善它,但我相信你明白了。

默认的方法是在/ app / views / layouts中创建flash.ctp。这将覆盖您可以在/ cake / libs / view / layouts中找到的默认flash.ctp。所以你不需要使用额外的参数。

btw:这适用于所有CakePHP标准视图和布局。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top