【问题标题】:Outputting HTML In Twig From Database从数据库中输出 Twig 中的 HTML
【发布时间】:2014-10-11 13:05:21
【问题描述】:

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

【问题讨论】:

    标签: php html twig slim


    【解决方案1】:

    刚刚想通了。对于任何看到这里的人来说都是答案。

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2012-01-11
      相关资源
      最近更新 更多