/ / Symfony 2: Ograniczenia doktrynalne w formularzach - php, symfony, doctrine2, byt

Symfony 2: Ograniczenia doktryny w formularzach - php, symfony, doctrine2, entity

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 № 1

Wł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 ...