2011-08-19 3 views
6

Veritabanındaki verileri dinamik olarak görüntüleyen bir sayfa oluşturmayı başardım. Ancak, veritabanına kaydedilir Bu kod: BöyleSymfony 2 ve Twig Kullanarak Veritabanında Kaydedilen HTML Etiketlerini Görüntülemek İçin

<p>This is the content for the radio <a href="#">page</a>.</p> 

görüntüler:

<p>This is the content for the radio <a href="#">page</a>.</p> 

HTML etiketleri işlenmez. Symfony'nin (güvenlik nedeniyle) güvenlik nedenleriyle böyle bir HTML kodu oluşturduğunu anlıyorum. Bu HTML etiketlerini oluşturmak için Symfony (açıkçası) istiyorum. Bunu sadece bu amaç için nasıl gerçekleştirebilirim, böylece Symfony hala sitenin herhangi bir yerindeki veritabanına kaydedilen HTML etiketlerini temizler mi? Sadece bu yüzden Symfony'de hakkında daha fazla bilgi edinebilir, ayrıca

public function mainpageAction($slug) 
{ 

    $content = $this->getDoctrine() 
     ->getRepository('SiteMainBundle:Content') 
     ->find($slug); 

    if (!$content) { 
     throw $this->createNotFoundException('No product found for slug '.$slug); 
    } 

    return $this->render('SiteMainBundle:Default:page.html.twig', array('content' => $content, 'slug' => $slug)); 
} 

HTML verilmesidir: Bilgin

yanı, bu şimdiye veritabanından veri çekme kullanıyorum kodudur sadece PHP'nin tek işi etiketler veya Twig kullanarak düzgün şekilde oluşturulabilir mi?

Çok teşekkürler!

cevap

22

Bunu yapmak isterseniz, dal şablonunda raw filtresini kullanmanız gerekir. Twig belgelerinde açıklandığı gibi, ham filtre değeri güvenli olarak işaretler, bu da otomatik kaçış etkinleştirilmiş bir ortamda etkinleştirildiğinde, ham son filtre uygulandığında bu değişkenden kaçınılamaz. Sizin durumunuzda: {{ content | raw }}

+0

Çok teşekkürler! Parlak Çalışıyor :) – mickburkejnr

+0

+0

Verildiğinde Çalışmıyor Çalışmıyor mu? Aslında saf HTML görüntülemek için 'ham 'filtresini kullanıyorum ve bayrağı doğru şekilde işleniyor. – egeloen