[英]twig template returns html characters
我与树枝模板存在问题。
它返回原始html字符而不是html标记。
<?php
/* HomepageController.php */
namespace App\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class HomepageController extends AbstractController
{
/**
* @Route("/homepage/")
*/
public function homepage()
{
return $this->render('homepage/homepage.html.twig', [
'title' => 'this will be title',
]);
}
}
homepage.html.twig
<h1>this should show html content</h1>
<p>{{ title }} </p>
浏览器输出
<h1>this should show html content</h1>
<p>this will be title </p>
twig.yaml
twig:
default_path: '%kernel.project_dir%/templates'
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
exception_controller: null
你知道我要设置的配置是什么吗
您需要使用|raw
过滤器来消除html标记。
这是因为在文件中设置了优先级。 只是json。 添加了HTML,它的工作原理。
fos.rest.yaml
format_listener:
rules:
- {
path: "^/",
priorities: ["json","html"],
fallback_format: json,
prefer_extension: false,
}
通常,twig会将所有适用的字符转换为html实体(另请参见PHP doc中的html_entites )。
如果不希望树枝进行此转换,则需要在变量后面添加|raw
(例如{{ code|raw }}
。
此默认行为背后的原因是为了防止用户向您的网站注入恶意代码(例如,包括javascript代码)。
提示:尽量避免在变量中使用html代码。 在不可能的地方,请确保该值不能包含来自用户输入的html。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.