Ссылка в сообщении об ошибке

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Ссылка в сообщении об ошибке

Сообщение Brainfuck »

Использую стандартный yii\web\ErrorAction для обработки ошибок. Проблема в том что в одном месте мне надо передать ссылку в сообщении об ошибке. Например

Код: Выделить всё

$accountUrl = Html::a('анкету', ['profile/account']);
throw new ForbiddenHttpException("Вы должны полностью заполнить $accountUrl, прежде чем добавлять статью!");
Но вместо нормальной ссылки мне выводится ее html разметка:

Код: Выделить всё

Вы должны полностью заполнить <a href="//site.local/profile/account">анкету</a>, прежде чем добавлять статью!
Как убрать экранирование html в выводе сообщения об ошибке?
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Ссылка в сообщении об ошибке

Сообщение Alexum »

Не использовать Html::encode() в месте её вывода (на свой страх и риск).
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Re: Ссылка в сообщении об ошибке

Сообщение Brainfuck »

Alexum писал(а): 2018.07.20, 12:38 Не использовать Html::encode() в месте её вывода (на свой страх и риск).
Я то не использую. Это стандартное действие!!!
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Ссылка в сообщении об ошибке

Сообщение Alexum »

Ошибку то как выводите? По умолчанию в конфиге прописано

Код: Выделить всё

...
'errorHandler' => [
            'errorAction' => 'site/error',
        ],
...
В соответствующе вьюшке текст сообщения выводится как:

Код: Выделить всё

<div class="site-error">
    <div class="alert alert-danger">
        <h3><?= nl2br(Html::encode($message)) ?></h3>
    </div>
</div>
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Re: Ссылка в сообщении об ошибке

Сообщение Brainfuck »

Alexum писал(а): 2018.07.20, 12:46 Ошибку то как выводите? По умолчанию в конфиге прописано

Код: Выделить всё

...
'errorHandler' => [
            'errorAction' => 'site/error',
        ],
...
В соответствующе вьюшке текст сообщения выводится как:

Код: Выделить всё

<div class="site-error">
    <div class="alert alert-danger">
        <h3><?= nl2br(Html::encode($message)) ?></h3>
    </div>
</div>
А. Черт точно. Забыл что эта вьюха у меня лежит. Думал она где-то внутри фреймворка зашита. А в контроллере у меня все проще:

Код: Выделить всё

public function actions() {
	return [
		'error' => 'yii\web\ErrorAction',
	];
}
Там же это все по дефолту задается...
Закрыто