我有这个控制器,\Exception
被引发(我还没有弄清楚在某些条件下使用哪个SF2 Exception
)。这是它:
<?php
namespace My\AppBundle\Controller;
use ....
class MyController extends Controller
{
const EXCEPTION_MESSAGE = <<<EOF
My <b>HTML</b>
<br/>
<small>Small phrase</small>
EOF;
public function indexAction()
{
// my logic
if(in_array($data, $array))
throw new \Exception(self::EXCEPTION_MESSAGE);
// the rest of my logic
return ....
}
}
在 app / Resources / TwigBundle / views / Exception / error.html.twig
{% extends '::base.html.twig' %}
{% block body %}
<h2>Error</h2>
<p>{{ exception.message }}</p>
{% endblock %}
问题是在prod
environement中查看错误页面时未呈现HTML。
我尝试了{{ exception.message|raw }}
并根据this answer将autoescape
设置为false
,但似乎没有效果。
如何在Twig中显示\Exception
消息时使HTML工作?
答案 0 :(得分:0)
在代码中,您捕获异常的地方是需要将其添加到传递给twig的数组中的位置。例如
$vars = [];
try {
$a->indexAction();
//fill $vars
} catch (Exception $e) {
$vars['exception'] = $e;
}
//pass $vars to twig