Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-是否可以禁用每个模块(或每个模板)的输出转义?_Php_Symfony1_Symfony 1.4 - Fatal编程技术网

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

Php Symfony-是否可以禁用每个模块(或每个模板)的输出转义?,php,symfony1,symfony-1.4,Php,Symfony1,Symfony 1.4,我试图在XML模板中输出一些HTML,而Symfony的转义方法把它搞糟了。所以我试着在模块的config文件夹中复制settings.yml,但它似乎被完全忽略了。是否有一种简单的方法可以更改每个模块甚至每个模板的转义策略和/或转义方法设置?打开输出转义后,您仍然可以通过$sf\u data访问原始值。例如,如果您尝试输出的HTML在您的操作中存储在名为HTML的变量中: $this->html = '<b>My HTML</b>'; $this->html='

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

打开输出转义后,您仍然可以通过
$sf\u data
访问原始值。例如,如果您尝试输出的HTML在您的操作中存储在名为HTML的变量中:

$this->html = '<b>My HTML</b>';
$this->html='myhtml';
您可以通过以下方式获得未经转换的值:

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


我不认为有任何方法可以在每个模块的基础上禁用此功能。

只有在从操作传递变量时,getRaw才起作用。对于视图中的变量,请使用

sfOutputEscaperGetterDecorator::unescape($html)

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

看起来很酷,我不知道这件事。我不理解这样的问题,只想回答一个对象:$yourObject->getRawValue()->getProperty()。。如果有帮助的话……朱利安:如果他想从一个模型对象中计算出来,你的解决方案将是完美的,你应该发布一个答案以防万一。谢谢Cryo,$sf_data->getRaw()成功了。Julien,感谢您从模型中提供有关如何使用此功能的信息。我希望取消某些属性的scape,但不幸的是,属性无法通过$sf_data->getRaw(..)访问。但是你的回答成功了!谢谢