2015-04-12 233 views
1

我已经定义了自定义的验证规则HTML内容:Yii2呈现自定义的验证规则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()方法中显示链接?

+0

更有效的方法将是有条件地基于误差对象是否被设置或不.. –

+0

例如以显示重新发送链接:如果($这 - > hasError ){show_link} else {hide_link},你可以在你的视图中添加这样的内容 –

+0

谢谢我会试试看。但问题仍然出现,为什么addError方法不呈现HTML? – Chinmay

回答

7

传递该配置数组ActiveField

'errorOptions' => ['encode' => false]