我有一个控制器,在特定条件下,Exception
会被引发(我还没有弄清楚要使用哪个SF2 Exception
)。给你:
<?php
namespace MyAppBundleController;
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.trick中
{% extends '::base.html.twig' %}
{% block body %}
<h2>Error</h2>
<p>{{ exception.message }}</p>
{% endblock %}
问题是当在prod
环境中看到错误页面时,HTML没有被呈现。
我尝试了{{ exception.message|raw }}
,并根据这个答案将autoescape
设置为false
,但似乎没有效果。
在Twig中显示Exception
消息时,如何使HTML工作?
在代码中捕获异常的位置是需要将其添加到传递给trick的数组中的位置。例如
$vars = [];
try {
$a->indexAction();
//fill $vars
} catch (Exception $e) {
$vars['exception'] = $e;
}
//pass $vars to twig