Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2][SF2][SF3][Validator] Kolekcja
kpt_lucek
post
Post #1





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witajcie

Mam pewien problem, posiadam walidację encji która zawiera kolekcję encji pod konkretnym property, uzupełniane jest wszystko przez formularz z opcją dodawania nowego wpisu.

  1. $builder
  2. //...
  3. ->add('someProperty', CollectionType::class, [
  4. 'entry_type' => SomeNestedEntityType::class,
  5. 'allow_add' => true
  6. ]);

Kod
SomeBundleBundle\Entity\SomeEntity:
    properties:
        someNestedEntities:
            - Valid: ~
            - Count:
                min: 1
                groups: [DEFAULT]

Kod
SomeBundle\Entity\SomeNestedEntity:
    properties:
        value:
            - NotBlank:
                groups: [DEFAULT]
            - NotNull:
                groups: [DEFAULT]
            - Type:
                type: float
                groups: [DEFAULT, AUTO]
            - Type:
                type: string
                groups: [PERIODIC]
        strategy:
            - Choice:
                choices: [single, shared, everyone]
                groups:  [DEFAULT, AUTO]
            - NotBlank:
                groups: [DEFAULT]
            - NotNull:
                groups: [DEFAULT]
        placement:
            - GreaterThan:
                value: 0
                groups: [DEFAULT]
            - Type:
                type: integer
                groups: [DEFAULT]
            - NotBlank:
                groups: [DEFAULT]
            - NotNull:
                groups: [DEFAULT]


Całość to form, zastosowanie czysto RESTowe.

Problem:
Pole placement w SomeNestedEntity powinno być walidowane w formie x, x+1, x+2, x+3...x+n, tj. nie może wystąpić przerwa w nadawaniu kolejnych numerów, ale nie ma ograniczenia co do "początku" za wyjątkiem tego, że muszą być od siebie różne, musi być int oraz muszą być zajęte wszystkie...indexy? bo tak to chyba można nazwać. Nie ma znaczenia kolejność ich ułożenia w tablicy.

Pytanie:
Jak to dobrze ograć, żeby wszystkie warunki były spełnione? Nie ukrywam, że Constraint na klasę wydaje mi się najodpowiedniejszy, aczkolwiek jak ogarnąć weryfikację zajętości indexów w kolekcji z poziomu elementu który do niej dostępu nie ma?

Inny pomysł?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:31