从数据库输出Twig中的HTML

时间:2014-08-18 14:58:56

标签: php html twig slim

我有一个数据库,可以在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打印出我的变量,它就会再次显示为纯文本!

1 个答案:

答案 0 :(得分:2)

刚想出来了。对于任何看到这里的人来说,这就是答案。

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

添加| raw会将HTML输出为HTML。