我试图在 XML 模板中输出一些 HTML,而 Symfony 的转义方法把它搞砸了。所以我尝试在模块的配置文件夹中制作 settings.yml 的副本,但它似乎被完全忽略了。是否有一种简单的方法可以更改每个模块甚至每个模板的 escaping_strategy 和/或 escaping_method 设置?
问问题
10094 次
3 回答
17
打开输出转义后,您仍然可以通过$sf_data
. 例如,如果您尝试输出的 HTML 在您的操作中存储在名为 html 的变量中:
$this->html = '<b>My HTML</b>';
您可以通过以下方式获得未转义的值:
<?php echo $sf_data->getRaw('html') ?>
我不相信有办法在每个模块的基础上禁用此功能。
于 2010-02-01T22:55:10.190 回答
11
getRaw 仅在从操作传递变量时才有效。对于视图内的变量使用
sfOutputEscaperGetterDecorator::unescape($html)
于 2011-06-27T22:15:30.033 回答
9
今天刚遇到这个问题,我设法通过sfConfig::set('sf_escaping_strategy', false)
在我的控制器中进行设置来解决它(preExecute
在该模块中所有操作的方法中或在特定操作中 - executeWhatever
)。
于 2012-02-22T14:12:32.090 回答