@Dream2140

Проверка уникальности никнейма yii?

Делаю страницу изменения данных пользователя, мне нужно сделать проверку на то что новый никнейм который ввел пользователь в форму - уникальный. Если в модели просто выставить
public function rules()
    {
        return [
            ['nickname', 'unique'],
        ];
    }

то оно будет работать некорректно - так как оно посчитает что оно уже занято(старый ник который автоматом ввелов = "новому нику") 60095691abf1f052674153.png
Есть ли в yii2 стандартный метод которым это можно сделать? Или нужно писать свой валидатор? Но тогда вопрос, как сделать проверку что данные в поле обновлялись?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
@bashcod
Должно работать как то так. Т.е. делаем отдельный сценарий на обновление. Потом при валидации по этому сценарию вызываем валидацию, если аттрибут поменялся.

[['username'], 'unique', 'on'=>'update', 'when' => function($model){
return $model->isAttributeChanged('username')
}],
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zoozag
@zoozag
Opencart
Указанный код должен нормально работать.
На первый взгляд кажется, что в таблице не указан primaryKey
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы