7

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

4

3 回答 3

17

打开输出转义后,您仍然可以通过$sf_data. 例如,如果您尝试输出的 HTML 在您的操作中存储在名为 html 的变量中:

$this->html = '<b>My HTML</b>';

您可以通过以下方式获得未转义的值:

<?php echo $sf_data->getRaw('html') ?>

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

我不相信有办法在每个模块的基础上禁用此功能。

于 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 回答