将关闭控件添加到CakePHP中的session-flash()输出中
时间:2020-03-06 14:40:17 来源:igfitidea点击:
在CakePHP 1.2
应用中,我正在使用
<?php $session->flash();?>
输出"记录已编辑"之类的消息。效果很好。
但是,我想添加一个名为" Dismiss"的链接,该链接将淡出该消息。我知道如何构造链接,但是我不知道如何插入flass消息的输出中。
即时消息将自身包装在" DIV标签"中。我想将解雇代码插入该div,但我不知道如何。
解决方案
想通了:
在布局文件夹中创建一个新的布局:
layouts/message.ctp
在该布局中,包括用于输出内容的调用:
<?php echo $content_for_layout; ?>
然后,当我们设置即显消息时,指定要使用的布局:
$this->Session->setFlash('Your record has been created! Wicked!','message');
我们要使用setflash功能。如果我们将setflash传递给$ default一个空字符串,它将不会将消息包装在div中,而是将其照原样存储。这样,我们可以显示所需的任何标记,或者如Justin发布的那样,可以在消息中使用另一个视图页面,这样就不会混淆视图和控制器。
默认的操作方法是在/ app / views / layouts中创建flash.ctp。这将覆盖我们在/ cake / libs / view / layouts中可以找到的默认flash.ctp。因此,我们无需使用其他参数。
顺便说一句:这适用于所有CakePHP标准视图和布局。
我们可以使用jQuery实现此目的:
$(document).ready(function() { $("#flashMessage").each(function() { $close = $("<span class='close'>Close</span>"); $close.click(function () { $(this).parent().hide("slow"); }); $(this).append($close); }); });
我们将需要使用一些CSS来完善它,但是我敢肯定想法。