Adicionar descartar controle de sessão-flash () de saída no CakePHP
-
02-07-2019 - |
Pergunta
Em um aplicativo CakePHP 1.2
, estou usando
<?php $session->flash();?>
para mensagens de saída como "Record editado". É ótimo trabalhar.
No entanto, eu quero adicionar um link chamado "Ignorar" que vai desaparecer a mensagem. Eu sei como construir o link, mas eu não sei como inserir na saída da mensagem flass.
A mensagem flash envolve-se em um DIV tag
. Eu quero inserir minha descartar código em que div, mas eu não sei como.
Solução 3
descobriram isso: Criar um novo layout em seus layouts pasta:
layouts/message.ctp
Nesse layout, incluir a chamada para a saída do conteúdo:
<?php echo $content_for_layout; ?>
Então, quando você definir a mensagem flash, especifique o layout para uso:
$this->Session->setFlash('Your record has been created! Wicked!','message');
Outras dicas
Você quer usar o href="http://api.cakephp.org/class_session_component.html" rel="nofollow noreferrer"> setflash função . Se você passar setflash uma cadeia vazia para $ padrão, ele não vai quebrar a sua mensagem em um div e apenas armazená-lo como é. Desta forma, você pode exibir qualquer marcação que você quer ou como Justin postou você pode usar outra página de visualização para a sua mensagem para que você não misturar o seu ponto de vista e os controladores.
Você pode conseguir isso com jQuery:
$(document).ready(function() {
$("#flashMessage").each(function() {
$close = $("<span class='close'>Close</span>");
$close.click(function () {
$(this).parent().hide("slow");
});
$(this).append($close);
});
});
Você vai precisar de bastante-lo com um pouco de CSS, mas eu tenho certeza que você começa a idéia.
a maneira padrão de fazer é é criar um flash.ctp no seu / app / views / layouts. Isto irá substituir o padrão flash.ctp pode encontrar em / cake / libs / view / layouts. Assim você não precisa usar o parâmetro adicional.
btw: Isso funciona para todos os pontos de vista e layouts padrão CakePHP
.