database - 如何使用 Symfony 2 和 Twig 显示保存在数据库中的 HTML 标签

标签 database symfony

我已经设法构建了一个页面,该页面将动态显示数据库中的数据。但是,保存在数据库中的这段代码:

<p>This is the content for the radio <a href="#">page</a>.</p>

显示如下:

<p>This is the content for the radio <a href="#">page</a>.</p>

不呈现 HTML 标记。我知道出于安全原因,Symfony(出于安全目的)呈现任何这样的 HTML 代码。我希望 Symfony(显然)呈现这些 HTML 标签。我如何才能仅出于此目的实现此目的,以便 Symfony 仍然清理保存到网站其他地方数据库中的任何 HTML 标记?

另外请注意,这是我用来从数据库中提取数据的代码:

    public function mainpageAction($slug)
{

    $content = $this->getDoctrine()
        ->getRepository('SiteMainBundle:Content')
        ->find($slug);

    if (!$content) {
        throw $this->createNotFoundException('No product found for slug '.$slug);
    }

    return $this->render('SiteMainBundle:Default:page.html.twig', array('content' => $content, 'slug' => $slug));
}

另外,为了让我能更多地了解 Symfony,HTML 标签的呈现只是 PHP 的唯一工作,还是可以使用 Twig 正确呈现?

非常感谢!

最佳答案

如果你想这样做,你需要在 twig 模板中使用 raw 过滤器。如 twig 文档中所述,raw 过滤器将值标记为安全,这意味着在启用自动转义的环境中,如果 raw 是最后一个应用到它的过滤器,则该变量将不会被转义。

在你的例子中,它是:{{ content |原始}}

关于database - 如何使用 Symfony 2 和 Twig 显示保存在数据库中的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7120094/

相关文章:

mysql - 将 .bak 导入 MySQL (.sql)

php - Symfony 2.8-SQL : No such file or directory in "test" environment only

php - 使用 parameter.yml 值的 Symfony 3 Datafixtures

php - 无法使用 composer 在 laravel 中安装 PHP-FFMpeg/PHP-FFMpeg 库

mongodb - 在 symfony2 中使用 doctrine 扩展在 doctrine2 odm 和 orm 之间共享对象

php - 如何在mysql中存储阿拉伯字体

sql-server - 经典的 asp 和 sql 数据库 azure

php - 使用一个 PHP 提交按钮更新多个 MySQL 行

c# - 无法永久更改 search_path

php - 我已经搜索了 FOSUserBundle 私有(private)资料,但无济于事