Yii2 отображает html-контент в методе пользовательского правила проверки addError

Я определил пользовательское правило проверки:

['Email', 'checkUniqueExistence'],

public function checkUniqueExistence($attribute, $params)
{
        $email = $this->$attribute;

        $checkUniqueExistenceForEmail = Parents::find()->where([ 'Email' =>  $email])->One();

        $resendActivationLink = Html::a('Resend Link','#');

        if(count($checkUniqueExistenceForEmail) > 0){
            if($checkUniqueExistenceForEmail->IsAccountActivated == Yii::$app->params['IsAccountActivatedTrue']){
                $this->addError($attribute, 'Email address already exists');
            }
            else{
                $this->addError($attribute, 'You haven\'t activated your account. Request '.$resendActivationLink);
            }
        }

}

Но ссылка не генерируется. Он отображается в виде строки. После отправки формы я получил следующий вывод:

You haven't activated your account. Request <a href="#">Resend Link</a>

Можно ли отобразить ссылку в методе addError()?


person Chinmay Waghmare    schedule 12.04.2015    source источник
comment
Более эффективным методом будет условное отображение ссылки для повторной отправки в зависимости от того, установлен объект ошибки или нет.   -  person Akhil Thayyil    schedule 12.04.2015
comment
например: if($this-›hasError) { show_link } else { hide_link } , вы можете добавить что-то подобное в свое представление   -  person Akhil Thayyil    schedule 12.04.2015
comment
Спасибо, я попробую. Но все равно возникает вопрос, почему метод addError не отрисовывает HTML?   -  person Chinmay Waghmare    schedule 12.04.2015


Ответы (1)


Передайте этот массив конфигурации в ActiveField

'errorOptions' => ['encode' => false]
person Rasikh Mashhadi    schedule 12.04.2015