Задать вопрос
@ImPuuLsE

С чем связано одновременное создание одинаковых объектов в MySql и Yii2?

Здравствуйте! Не могу понять каким образом могут добавляться одинаковые записи в БД, при условии что имеется модель (в Yii2) в которой 2 поля (email, username) - уникальные.
Т.е. если отправить 1 запрос, то второй запрос с этими же данными - не записывается, валидация работает. Я сделал простую авторизацию через React Native, и Yii2 рест апи.
Если нажать быстро несколько раз на кнопку регистрации то в базу улетают n-e кол-во одинаковых записей (проверяется через android эмулятор). Запрос делается через fetch. Есть у кого какие мысли по этому поводу?
  • Вопрос задан
  • 224 просмотра
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
  • Skillfactory
    Специализация Frontend-разработчик
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@devian3000
решение в лоб - сделайте уникальные индексы на столбцы на уровне БД.
Если это реализовано только на уровне кода то может происходить вот так.

Отправляются два запроса.
Первый запрос валидируется, проверяется что email уникален и отправляется на запись.
В этот момент проверяется второй запрос, если первый не успел записаться в базу, то получается что email снова уникален, и вторая запись уходит в базу и т.д.

Перекрывать надо на уровне БД.
Да и на фронте через REST блокировать отправку до того момента пока не вернётся ответ.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽