自定义rules验证提示 [ 2.0 版本 ]
public function validateRecipient()
{
if(!$this->hasErrors()){
$data=Member::find()->where(['username'=>$this->recipient])->one();
if(is_null($data)){
$this->addError('recipient','没有该收件人,请重新确认');
}
}
}
为什么这句话它错误之后没有提示..要是输入错误的信息它不会走到后面的save(),但是就是没有提示.应该要怎么弄才可以在form表单提示错误信息?
页面修改 补充于 2016-12-28 11:50
好像可以了..应该是我前台样式有问题..我把验证弄到后台的那个就出来了
最佳答案
-
$this->addError('recipient','没有该收件人,请重新确认');
关键是这句,如果验证错误,那么会把信息报给
<?= $form->field($model, 'recipient')->textInput() ?>
所以,要想form有提示,你得保证你表单中有这个字段。
共 3 条回复@AaaaaaaaaYING 你在验证那里打下断点,看走到那块没有。
其他 2 个回答
-
有两种解决方法:
1、用验证规则验证
在模型的验证规则中加入 ['recipient', 'exist', 'message' => '没有该收件人,请重新确认'],
2、使用的自定义验证规则
['recipient', 'validateRecipient'],
public function validateRecipient($attribute, $params)
{if(!$this->hasErrors()){ $data=Member::find()->where(['username'=>$this->recipient])->one(); if(is_null($data)){ $this->addError($attribute,'没有该收件人,请重新确认'); } }
}
共 1 条回复
页面修改
注册时间:2016-11-01
最后登录:2020-01-19
在线时长:79小时33分
最后登录:2020-01-19
在线时长:79小时33分
- 粉丝7
- 金钱1640
- 威望10
- 积分2530