Что случилось, ребята.
Я использую PUGXMultiUserBundle поверх FOSUserBundle для регистрации и входа в систему двух разных пользовательских объектов.
Все работает из коробки: у меня есть класс User, расширяющий базовый класс User из FOSUserBundle, и две мои сущности для Seller и Customer, расширяющие класс User.
Я не хочу, чтобы мои пользователи вводили свое имя пользователя, поскольку электронная почта является предпочтительным свойством входа в систему. Поэтому в методах setEmail() и setEmailCanonical() моего класса User я также устанавливаю имя пользователя и имя пользователяCanonical вместе с электронной почтой. Это работает нормально, НО.
Проблема с твигом. Когда я визуализирую form_rest(form) в конце моей формы, она правильно отправляется, и пользователь регистрируется. Но если я попытаюсь отобразить токен безопасности с помощью form_widget(form._token) и отправить, я окажусь в той же форме, контроллер не запустится, база данных останется неизменной, ошибки не будут возвращены.
((Причина, по которой я это делаю, заключается в том, чтобы не показывать поле ввода «имя пользователя», поскольку я не требую его от своих пользователей.))
Итак, вопрос: что делает form_rest(), помимо скрытого ввода _token, что мешает моей форме работать должным образом?
Есть ли лучший подход к тому, что я пытаюсь выполнить?
Чем заранее.
FOSUserBUndle
, мы присвоили ему то же значение, что иemail
(которое тоже уникально). Тем не менее, мы никогда не будем использовать его, мы просто заставляем его молчать. Итак, этот шаг является точкой nb 1 в ответ, о котором я упоминал выше... есть установщик для изменения ("setEmail") в вашем объекте пользователя, и он переопределит имя пользователя `$this-›username = $email'. 15.01.2014setEmail($email)
во время регистрации, поместив операторdie()
или что-то еще. 16.01.2014