Как безопасно использовать UniqueEntity (на сайтах с более чем одним пользователем одновременно)

Может кто-нибудь умный может поделиться шаблоном дизайна, который он использует, чтобы избежать этой основной и распространенной проблемы параллелизма в Doctrine \ Symfony?

Сценарий: Каждый пользователь должен иметь уникальное имя пользователя.

Неудачное решение:

ДобавитьUniqueEntity ограничение на сущность пользователя.Следоватьобразец, предложенный в документах Symfony: Используйте компонент Form для проверки потенциального нового пользователя. Если это действительно так, сохраните это.

Почему это не удается: Между проверкой и сохранением пользователя имя пользователя может быть занято другим пользователем. Если это так, Doctrine выдает исключение UniqueConstraintViolationException, когда пытается сохранить нового пользователя.

Ответы на вопрос(4)

Ваш ответ на вопрос