0

在一个CakePHP 1.2应用程序中,我正在使用

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

输出诸如“记录已编辑”之类的消息。它工作得很好。

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

flash 消息将自身包装在一个DIV tag. 我想将我的关闭代码插入到该 div 中,但我不知道如何。

4

4 回答 4

1

想通了:在您的布局文件夹中创建一个新布局:

layouts/message.ctp

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

<?php echo $content_for_layout; ?>

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

$this->Session->setFlash('Your record has been created! Wicked!','message');
于 2008-09-24T15:58:22.607 回答
1

您想使用setflash功能。如果您为 setflash 传递一个空字符串 $default 它不会将您的消息包装在 div 中,而是按原样存储。这样您就可以显示您想要的任何标记,或者正如 Justin 发布的那样,您可以使用另一个视图页面来显示您的消息,这样您就不会混合视图和控制器。

于 2008-09-24T16:08:35.077 回答
1

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

$(document).ready(function() {

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

});

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

于 2009-04-14T12:04:09.280 回答
0

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

顺便说一句:这适用于所有 CakePHP 标准视图和布局。

于 2009-01-12T14:43:38.587 回答