Symfony - 是否可以禁用每个模块(或每个模板)的输出转义?

Ste*_*nte 7 php symfony1 symfony-1.4

我正在尝试在XML模板中输出一些HTML,Symfony的转义方法正在弄乱它.所以我尝试在模块的配置文件夹中制作settings.yml的副本,但它似乎完全被忽略了.有没有一种简单的方法来更改每个模块甚至每个模板的escaping_strategy和/或escaping_method设置?

nor*_*ron 17

打开输出转义时,您仍然可以访问原始值$sf_data.例如,如果您尝试输出的HTML存储在操作中名为html的变量中:

$this->html = '<b>My HTML</b>';
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法获取未转义的值:

<?php echo $sf_data->getRaw('html') ?>
Run Code Online (Sandbox Code Playgroud)

http://www.symfony-project.org/book/1_0/07-Inside-the-View-Layer#chapter_07_sub_activating_output_escaping

我不相信有一种方法可以在每个模块的基础上禁用此功能.

  • 看起来很酷,不知道这个.我不理解这样的问题并且即将回答,仅针对一个对象:$ yourObject-> getRawValue() - > getProperty()..如果它有帮助... (5认同)

小智 11

getRaw仅在从操作传递变量时才有效.对于视图使用中的变量

sfOutputEscaperGetterDecorator::unescape($html)
Run Code Online (Sandbox Code Playgroud)


小智 9

今天遇到这个问题,我设法通过sfConfig::set('sf_escaping_strategy', false)在我的控制器中设置(preExecute在该模块中的所有操作的方法或特定的操作中executeWhatever)来解决它.