CakePHP 1.2 $ session-> flaşın çıkış stilini ve konumunu Özelleştirme

2 Cevap php

Ben CakePHP 1.2 sürümünü (son) kullanarak ve Session yardımcısı flash mesajı görüntüleyen bir sorun yaşıyorum, basit bir web uygulaması yazıyorum. Benim düzeni, aşağıdaki kod orada var:

<?php echo $this->renderElement('flash'); ?>

Hangi aşağıdaki öğeyi oluşturur:

<?php if($session->check('Message.flash')): ?>
     <?php $class = isset($error) ? 'contentError' : 'contentSuccess'; ?>
     <div class="contentBlockWrapper <?php echo $class; ?>">
         <div class="contentBlock">
             <div id="flashMessage" class="flash">
                 <?php $session->flash(); ?>
             </div>
         </div>
     </div>
<?php endif; ?>

İstenilen davranış, o tarz ve ben istediğiniz gibi yerleştirilmiş olacaktır böylece DOM içindeki yukarıdaki yerde görüntülenebilir ki, görüntülenecek flash mesaj varsa.

Sorun flash mesaj varsa, CakePHP derhal açılması <body> etiketi sonra render edilir olmasıdır. Şimdi, aynı zamanda, doğru yerde, yukarıda açıklanan kapları işler, ancak sadece bunu istiyorum metni yazmaz.

Benim görünümü içinde bir değişken çıkış tampon yıkama ve echo'ing çalıştı, ama boşuna ettik. Ben de bazı millet onlar görüntülenmesini istediğiniz özel bir mesaj göstermek için adlandırılmış tuşlarını kullanarak denedi, ama ben görüntülemek istediğiniz metin, sadece yanlış yerde, görüntülenir ediliyor çünkü burada uygun olmadığını okudum.

Herhangi bir yardım mutluluk duyacağız - teşekkürler!

2 Cevap

Ben muhtemelen diyor hangi düzende artık sahip düşünüyorum

$session->flash();

Yani flaş orada işlenir ve temizlenir. Bu eleman işlenir değil neden budur.

Lütfen ~/app/views/layouts/default.ctp (ya da diğer siz varsayılan kullanarak değilseniz) kontrol ve yardımcı olmadığını bize bildirin.

Sizin denetleyicisi setFlash () çağrılırken çeviri fonksiyonunu kullandıysanız, bunun için ikinci parametre olarak "gerçek" geçti emin olun. Şöyle:

$ This-> Session-> setFlash (__ ('İşte Benim Mesajı', TRUE));

Aksi halde, ileti döndürdü değil, yankılandı olacak! Siz sadece sayfanızın HTML kodu ve setFlash gönderilen mesaj tanımsız olacak önceleyerek ve böylece size beklediğiniz yerde görünmez göreceksiniz.