在我的RequestListener.php中,如果用户无法访问实体,则使用以下异常:
throw new AccessDeniedHttpException();
因此,它使用树枝返回了我的自定义403错误html模板。
<div class="jumbotron jumbotron-fluid exception">
<table class="wrapper">
<tr>
<td>
<div class="error-code">
<span>403</span>
<div class="caption">
<h1 class="text-light">Test h1</h1>
<h2 class="text-light">Test h2</h2>
<p>
Test
</p>
</div>
</div>
</td>
</tr>
</table>
</div>
现在我想做的是,
throw new AccessDeniedHttpException();
根据发生错误403的情况使用不同的消息。
例如,我尝试做的是:
throw new AccessDeniedHttpException('custom');
在我的模板403.html.twig
中<div class="jumbotron jumbotron-fluid exception">
<table class="wrapper">
<tr>
<td>
{% if status_text %}
{{ status_text }}
{% else %}
<div class="error-code">
<span>403</span>
<div class="caption">
<h1 class="text-light">Test h1</h1>
<h2 class="text-light">Test h2</h2>
<p>
Test
</p>
</div>
</div>
{% endif %}
</td>
</tr>
</table>
但是我不知道在错误模板中是否可以访问在异常中传递的字符串...
答案 0 :(得分:1)
也许看看这个: How to display exception text in a custom error page on Symfony?。
您可以在树枝中使用exception.message
变量。
<div class="jumbotron jumbotron-fluid exception">
<table class="wrapper">
<tr>
<td>
{% if exception.message %}
{{ exception.message }}
{% else %}
<div class="error-code">
<span>403</span>
<div class="caption">
<h1 class="text-light">Test h1</h1>
<h2 class="text-light">Test h2</h2>
<p>
Test
</p>
</div>
</div>
{% endif %}
</td>
</tr>
</table>