CakePHP'de (session-flaş kontrol görevden ekle) çıkışı

4 Cevap php

In a CakePHP 1.2 app, I'm using flash();?> to output messages like "Record edited". It's working great.

Ancak, ben mesajı fade out olacak "Say" adlı bir bağlantı eklemek istiyorum. Ben bağlantıyı oluşturmak için nasıl biliyorum, ama ben flass mesajın çıkış içine eklemek için nasıl bilmiyorum.

Flaş mesaj, bir DIV etiketi kendisini sarar. Ben benim bu div içine kodu görevden eklemek istiyorum, ama nasıl bilmiyorum.

4 Cevap

Figured this out: Create a new layout in your layouts folder:

layouts/message.ctp

Bu düzende çıktı içeriği çağrıyı içerir:

<?php echo $content_for_layout; ?>

Eğer flaş mesajı ayarlayabilirsiniz Sonra, kullanılacak düzenini belirtin:

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

Sen setflash işlevini kullanmak istiyorum. $ Bir div mesajınızı sarın ve sadece olduğu gibi saklamak olmaz varsayılan için size setflash boş bir dize iletirseniz. Bu şekilde istediğiniz herhangi bir biçimlendirme görüntüleyebilir ya da Justin ilan edilen görünümünüzü ve kontrolörleri karışmaz böylece mesajın için başka bir görünüm sayfasını kullanabilirsiniz.

Bunu jQuery ile elde edebilirsiniz:

$(document).ready(function() {

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

});

CSS ile biraz oldukça o kadar ihtiyacınız olacak, ama fikir olsun eminim.

yapmak için varsayılan yolu / app / views / düzenleri bir flash.ctp yaratmak için olduğunu. Bu size / kek / libs / view / düzenleri bulabilirsiniz varsayılan flash.ctp geçersiz kılar. Yani ek param kullanmanız gerekmez.

btw: Bu her CakePHP standart görüş ve düzenleri için çalışıyor.