从数据库输出HTML在小枝


Outputting HTML In Twig From Database

我有一个数据库,它在一个varchar列内存储一些文本和一些HTML。它看起来像这样:

Click here to go to the site: <a href="http://www.google.com">http://www.google.com</a>.

但是,当我将它输出到HTML页面时,它显示为纯文本,而不是一个可点击的链接。

我如何使其输出作为一个有效的HTML标签,并创建一个可点击的href?

我使用Slim路由获取数据:

$app->get('/projects/:id', function($id) use ($app) {
    // Open Dataabse Connection
    $con = connect_db();
    // Query for all Projects with specific Id
    $project = $con->query("SELECT * FROM Projects WHERE projectId=".$id."")->fetch(PDO::FETCH_OBJ);
    // Get Documents associated with Project Id
    $documents = $con->query("SELECT * FROM ProjectDocuments WHERE projectId=".$id."")->fetchAll(PDO::FETCH_OBJ);
    // Get Student Updates by Project Id
    $updates = $con->query("SELECT * FROM StudentUpdates LEFT JOIN ASAPers ON ASAPers.userId = StudentUpdates.userId 
        WHERE projectId=".$id." ORDER BY StudentUpdates.date DESC LIMIT 5")->fetchAll(PDO::FETCH_OBJ);
    $projectArray = array();
    foreach ($project as $key => $value) {
        $project->{$key} = htmlspecialchars_decode($value);
        array_push($projectArray, $project->{$key});
    }
    print_r($projectArray);
    // Render Single Project page
    $app->render('single.project.twig', array('project'=>$projectArray, 'updates'=>$updates, 'documents'=>$documents));
});
在single.project.twig

<h2>{{ project[1] }}</h2>
<p>{{ project[2] }}</p>

如果我在PHP中打印出数组,它会显示为HTML链接!然而,一旦我用Twig打印出我的变量,它就会再次显示为纯文本!

我明白了。对于任何看到这个的人来说,这就是答案。

<h2>{{ project[1] | raw }}</h2>
<p>{{ project[2] | raw }}</p>

添加| raw将输出HTML作为HTML