Из-за того, что уникальный валидатор получает ошибку при обновлении («это имя пользователя уже занято»), я хочу проверить имя пользователя при обновлении, когда новое значение имени пользователя не равно предыдущему значению, это мое правило:
[['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() ничего не возвращает из-за статического идентификатора (например: 23) его работы.
[['username'], 'unique', 'on'=>'update', 'when' => function($model){
return static::getOldUsername(23) !== $model->username;
}
],
как я могу получить идентификатор модели? или если у вас есть другие способы пропустить уникальную проверку yii2 при обновлении, если новое значение равно предыдущему значению, объясните это.
заранее спасибо