0

小枝テンプレートを手動でレンダリングしたいのですが、コードは次のようになります:

$template = $this->twig->loadTemplate('MyBundle::board.html.twig');                                          $result = $template->render(array('entities'=>$query->getResult()));  
return $result;

I の場合echo $result、すべてが正常に機能し、Chrome はすべての HTML コードを正しくレンダリングしますが$result、関数から戻って twig を としてレンダリングする必要があります{{result}}が、使用できません{{result|raw}}

小枝がhtmlをエスケープしないようにする他の方法はありますか?

4

2 に答える 2

1

{{ result|raw }} を使用できない理由がわかりません。ただし、環境全体でエスケープを無効にすることができます。これは、エスケープをオフにして、文字列からいくつかの html をレンダリングするために使用したものです。

$twig = new \Twig_Environment( new \Twig_Loader_String(), 
    array(
        'autoescape' => false
    )
);
$body = $env->render(
    $templateString,
    $parameters
);

おそらくこれはあなたが探しているものではありません。

于 2013-10-28T09:55:36.077 に答える
0

エスケープは内部にある必要があると思います MyBundle::board.html.twig

于 2013-10-28T09:32:17.107 に答える