由于唯一验证器在更新操作时出错(“此用户名已被使用”),当新用户名值不等于上一个值时,我想在更新操作上验证用户名,这是我的规则:
[['username'], 'unique', 'on'=>'update', 'when' => function($model){
return static::getOldUsername($model->id) !== $model->username;
}
],
我的功能是获取 prev 用户名值:
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 唯一验证,如果新值等于上一个值,请解释一下。
提前致谢