У меня есть Пользователь и Университет с отношением ManyToOne (в одном университете может быть много пользователей).Я добавил ограничение уникальности для имени университета, чтобы избежать дубликатов.
Поэтому, когда я делаю HTTP-запрос PUT по маршруту / users / $ id с полезной нагрузкой, содержащей существующее название университета, я получаю следующее:
Нарушение ограничения целостности: 1062 Повторяющаяся запись 'INSA' для ключа 'unique_university_name'
Я хотел бы, чтобы доктрина записала запись в базу данных, чтобы изменить ее, еслион уже существует.
Для этого я попытался использовать систему событий API-платформы: https://api -platform.com / docs / core / events
С событиями kernel.request я мог получить доступ к данным, но мне не удалось их изменить.Я не нашел способ изменить «содержание» запроса.Я попытался также это: Есть ли способ изменить тело запроса в ядре Symfony event_listener , и я закончил с этой ошибкой.
Сериализация для формата html не поддерживается
Я хотел сделать это с событиями kernel.view, такими как PRE_VALIDATE, POST_VALIDATE или PRE_WRITE, но они не вызваны по какой-то причине.
Использую ли я правильный подход?Что я должен сделать, чтобы добавить университет к пользователю, если он уже существует на основе его «имени»?