Symfony 4: AccessDeniedHttpException () получить доступ к пользовательским переменным - PullRequest
0 голосов
/ 05 декабря 2018

В моем 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>

Но я не знаю, передана ли строка в исключениидостижимо в моем шаблоне ошибки ...

1 Ответ

0 голосов
/ 06 декабря 2018

Может быть, посмотрите на это: Как отобразить текст исключения на пользовательской странице ошибки в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...