2015-01-25 2 views
0

Проблема:ZF2: Предоставление HTML-теги в меню навигации (выключая HTML-беглец)

Если вы хотите разместить HTML-разметку в пределах вашего Zend Framework 2 навигации, например, как это:

<?php 
'navigation' => array(
default' => array(
     array(
      'label' => '<i class="fa fa-home"></i>Home', 
      'route' => 'home', 
     ), 
... 

и мы хотим показать его помощник вида

<?php echo $this->navigation('navigation')->menu())?> 

... ZF будет автоматически избежать всех HTML-разметку. Результат будет:

<i class="fa fa-home"></i>Home (No HTML markup was rendered.) 

Итак, как мы можем оказать HTML-разметку в меню ярлыков?

ответ

2

Я хочу ответить на этот вопрос сам, так как я не мог найти ответ нигде, и это может быть полезно для вас.

Решение действительно прост. У помощника вида $this->navigation('navigation')->menu() есть способ, который делает именно это! Метод называется ->escapeLabels(). Просто добавьте его, и вы сделали:

<?php echo $this->navigation('navigation')->menu()->escapeLabels(false)?> 

Предупреждения: Конечно, как всегда быть осторожными при рендеринге неэкранированного текста из источника вы не можете доверять (например пользовательский ввод).

Смежные вопросы