繁体   English   中英

树枝模板返回html字符

[英]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标记。

更多详细信息https://twig.symfony.com/doc/3.x/filters/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM