【发布时间】:2010-02-01 22:50:21
【问题描述】:
我试图在 XML 模板中输出一些 HTML,而 Symfony 的转义方法把它搞砸了。所以我尝试在模块的配置文件夹中制作 settings.yml 的副本,但它似乎被完全忽略了。是否有一种简单的方法可以更改每个模块甚至每个模板的 escaping_strategy 和/或 escaping_method 设置?
【问题讨论】:
标签: php symfony1 symfony-1.4
我试图在 XML 模板中输出一些 HTML,而 Symfony 的转义方法把它搞砸了。所以我尝试在模块的配置文件夹中制作 settings.yml 的副本,但它似乎被完全忽略了。是否有一种简单的方法可以更改每个模块甚至每个模板的 escaping_strategy 和/或 escaping_method 设置?
【问题讨论】:
标签: php symfony1 symfony-1.4
打开输出转义后,您仍然可以通过$sf_data 访问原始值。例如,如果您尝试输出的 HTML 在您的操作中存储在名为 html 的变量中:
$this->html = '<b>My HTML</b>';
您可以通过以下方式获得未转义的值:
<?php echo $sf_data->getRaw('html') ?>
我不相信有办法在每个模块的基础上禁用此功能。
【讨论】:
getRaw 仅在从操作传递变量时才有效。对于视图中的变量使用
sfOutputEscaperGetterDecorator::unescape($html)
【讨论】:
今天刚遇到这个问题,我设法通过在我的控制器中设置sfConfig::set('sf_escaping_strategy', false) 来解决它(在该模块中的所有操作或特定操作的preExecute 方法中或在特定操作中 - executeWhatever)。
【讨论】: