piszę pod Symfony 2.5. Od kilku godzin nie mogę rozwiązać problemu z walidacją formularzy. Postępuję zgodnie z http://symfony.com/doc/current/book/validation.html. Mam entity, tworzę plik validation.yml, w config.yml ustawiam:
Kod
validation: { enabled: true, enable_annotations: false}
Czyszczę również cache - fizycznie usuwając katalog dev oraz poprzez c:cl --no-debug jednak plik jest całkowicie ignorowany przy walidacji. Nie znalazłem nigdzie słowa o tym, aby ten plik trzeba było ręcznie ładować, czy dodawać jakieś metody do entity, czy formularza.Zawartość pliku validation.yml:
Kod
MSC\TransactionBundle\Entity\Transaction:
properties:
shortDescription:
- NotBlank: ~
- Length:
max: 64
maxMessage: todo3
longDescription:
- Length:
max: 255
maxMessage: todo4
executeDateAndTime:
- NotBlank: ~
- DateTime:
message: todo5
value:
- NotBlank: ~
- Type:
type: double
message: todo6
MSC\TransactionBundle\Entity\TransactionCategory:
properties:
name:
- NotBlank: ~
- Length:
max: 64
maxMessage: todo1
description:
- Length:
max: 255
maxMessage: todo2
Plik validation.yml znajduje się w katalogu /src/MSC/Bundle/TransactionBundle/Resources/config/.properties:
shortDescription:
- NotBlank: ~
- Length:
max: 64
maxMessage: todo3
longDescription:
- Length:
max: 255
maxMessage: todo4
executeDateAndTime:
- NotBlank: ~
- DateTime:
message: todo5
value:
- NotBlank: ~
- Type:
type: double
message: todo6
MSC\TransactionBundle\Entity\TransactionCategory:
properties:
name:
- NotBlank: ~
- Length:
max: 64
maxMessage: todo1
description:
- Length:
max: 255
maxMessage: todo2
W czym problem?
Aktualizacja
Problem rozwiązany. Okazało się, że ścieżka do entity musi być tak naprawdę pełną ścieżką do pliku, nic nie można pominąć. Działające rozwiązanie:
Kod
MSC\Bundle\TransactionBundle\Entity\Transaction:
#...
MSC\Bundle\TransactionBundle\Entity\TransactionCategory:
#...
#...
MSC\Bundle\TransactionBundle\Entity\TransactionCategory:
#...