Mam encję z polem url
, ta jednostka jest utrwalana w bazie danych przed wysłaniem formularza opartego na tej samej jednostce.
Mogę ustawić ograniczenia dla typu formularza w validation.yml
wraz z niestandardowymi wiadomościami, takimi jak NotBlank
i Url
. To wszystko w porządku. Ale kiedy próbuję utrwalić byt, który już istnieje w bazie danych, pojawia się błąd informujący, że wartość już istnieje (url
).
Jak mogę ustawić niestandardową wiadomość w tym celu UniqueEntity
przymus?
Próbowałem dodać UniqueEntity
w pliku validation.yml, ale znajduje się w innej przestrzeni nazw i nie mogę zrozumieć, jak to działa ani jak go skonfigurować. Jest tam domyślnie, couse url
jest zdefiniowany jako unikalne pole w oryginalnym opisie encji, ale jak zmienić komunikat o błędzie?
Odpowiedzi:
2 dla odpowiedzi № 1Właśnie znalazłem rozwiązanie mojego problemu.
Wszystkie walidacje mogą być zdefiniowane w validation.yml, ale ponieważ używam adnotacji do zdefiniowania moich jednostek, lepiej umieścić wszystkie walidacje, wiadomości itp. W tych adnotacjach.
Wystarczyło ustawić @AssertNotBlank
dla niepustego pola i @ORMUniqueEntity(message="my custom error")
za to, że jest unikalnym sprawdzaniem poprawności.
Przykro mi z powodu zalania strony moim pytaniem, ale mam nadzieję, że ktoś może uznać to za przydatne ...
P.S .: Adnotacje lub YML nie mają znaczenia, konfiguracja jest taka sama. Przypuszczam, że w moim przypadku powinno to być coś takiego:
NamespaceClass:
constraints:
- SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity:
fields: url
message: "My custom message"
Jest dość elastyczny, myślałem, że nie widzę, jak moglibyśmy ustawić różne komunikaty, jeśli różne pola są już obecne w db ...