Isolution666
@Isolution666
Full-Stack Developer

Как на Yii2 в addError вставить гиперссылку?

Казалось бы простой вопрос, как в валидацию засунуть ссылку, но на деле не помогает ни декодирование, не преобразование HTML сушностей, то есть обычные встроенные функции php, - "addError" - полностью игнорирует
Yii::$app->session->getFlash(); - вообще не видит, без addError валидация игнорируется, то есть в конечном итоге на выходе получаем текст ошибки с html кодом ссылки.
<?=Html::encode();?>
<?=Html::decode();?>

тоже не помогут, да и в decode используется ENT_QUOTES, что игнорирует кавычки
В общем суть в том, что ссылку в валидацию вставить не так просто, но я думаю можно.
Кто сталкивался? Как это реализовать?
Если способов нет, тогда буду реализовывать через JavaScript, так как с его помощью вообще просто такое реализовать.
  • Вопрос задан
  • 479 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Вообще-то можно.
Сразу не сообразил.
Вот как-то так надо сделать.
// В ActiveForm
$form->field($model, 'password',[
    'errorOptions' => [
        'encode' => false,
    ]
])->passwordInput() 

// В модели
$this->addError('password', UsersModule::t('module', 'ERROR_WRONG_USERNAME_OR_PASSWORD', ['link' => Html::tag('a','test')]));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@olegbolden
Супер.
И ещё класс не забыть вернуть на место, иначе подсказка исчезнет.
$form->field($model, 'password',[
    'errorOptions' => [
        'encode' => false,
        'class' => 'help-block'
    ]
])->passwordInput()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы