我正在尝试在XML模板中输出一些HTML,并且Symfony的转义方法正在弄乱它。所以我尝试在模块的配置文件夹中制作settings.yml的副本,但它似乎完全被忽略了。是否有一种简单的方法可以更改每个模块甚至每个模板的escaping_strategy和/或escaping_method设置?
答案 0 :(得分:17)
启用输出转义功能后,您仍然可以通过$sf_data
访问原始值。例如,如果您尝试输出的HTML存储在操作中名为html的变量中:
$this->html = '<b>My HTML</b>';
您可以使用以下方式获取未转义的值:
<?php echo $sf_data->getRaw('html') ?>
我认为没有办法在每个模块的基础上禁用此功能。
答案 1 :(得分:11)
getRaw仅在从操作传递变量时才有效。对于视图内的变量使用
sfOutputEscaperGetterDecorator::unescape($html)
答案 2 :(得分:9)
今天遇到这个问题,我设法通过在我的控制器中设置sfConfig::set('sf_escaping_strategy', false)
来解决这个问题(在preExecute
方法中为该模块中的所有操作或特定操作设置{{1} }})。