Mam formularz do tworzenia nowego Customer
. Klient może mieć numer telefonu komórkowego. Numer telefonu komórkowego powinien być zachowany bez prefiksu, który użytkownik może wpisać. Można to łatwo osiągnąć za pomocą:Jakie jest sugerowane miejsce do modyfikowania danych formularza powiązanego w Symfony?
$customer->setMobile(preg_replace("/^(\+|00)/", '', $customer->getMobile()));
Jakie jest najlepsze miejsce do umieszczenia tego kodu?
- Wewnątrz
CustomerController
przed wywołaniem menedżera encji i utrwalenia encji. Czy to naprawdę kwestia kontrolera w strukturze MVC? - Korzystanie
SanitizeCustomerSubscriber
i słuchanieFormEvents:POST_BIND
imprezy - Korzystanie z
CustomerSanitizer
usługę
Każdy inny pomysł? Oczywiście mówię o manipulacji danymi w ogólności, numer telefonu komórkowego jest tylko przykładem: pola do sanityzacji mogą być czymś więcej niż jednym.
Mam ** registerAction w BookController **, który wykorzystuje podobne zdarzenie PRE_SUBMIT do manipulowania danymi formularza. Ja działam dobrze. Ale po utworzeniu ** loginAction w SecurityController ** dzisiaj, za każdym razem, gdy zgłoszę akcję logowania, to (kontrola programowa) przechodzi do ** PRE_SUBMIT ** zdarzenia stworzonego dla akcji rejestru. Jak uniknąć tego przerwania akcji logowania za pomocą zdarzenia PRE_SUBMIT utworzonego dla akcji rejestru? ** Uwaga: ** oba kontrolery używają tej samej klasy encji. – webblover