【发布时间】:2016-11-08 11:09:36
【问题描述】:
由于唯一验证器在更新操作时出错(“此用户名已被使用”)我想在新用户名值不等于上一个值时验证用户名更新操作,这是我的规则:
[['username'], 'unique', 'on'=>'update', 'when' => function($model){
return static::getOldUsername($model->id) !== $model->username;
}
],
我的功能是获取上一个用户名值:
public static function getOldUsername($id)
{
return static::findIdentity($id)->username;
}
但它不起作用,我认为 $model->getId() 没有返回任何内容,因为它使用静态 id(例如:23)。
[['username'], 'unique', 'on'=>'update', 'when' => function($model){
return static::getOldUsername(23) !== $model->username;
}
],
我如何获得模型 ID?或者如果您有其他方法可以跳过 yii2 更新操作的唯一验证,如果新值等于上一个值,请解释一下。
提前致谢
【问题讨论】:
标签: yii2 yii2-validation