Rozchodzi się o ten fragment dokumentacji: http://symfony.com/doc/current/book/valida...lidation-groups

  1. ForumBundle\Entity\User:
  2. group_sequence:
  3. - User
  4. - Admin
  5. properties:
  6. login:
  7. - NotIdenticalTo:
  8. value: ROOT
  9. message: 'Login must be different from ROOT!'
  10. phone:
  11. - NotBlank:
  12. message: 'Phone must be present!'
  13. groups: [Admin]
  14. granted_by:
  15. - NotBlank:
  16. message: 'Your promotor must be present!'
  17. groups: [Admin]


oraz

  1. class DefaultController extends Controller
  2. {
  3. public function indexAction(Request $request)
  4. {
  5. $user = new User();
  6. $user->setLogin('ROOT');
  7.  
  8. $errors = $this
  9. ->get('validator')
  10. ->validate($user, null, array('Admin', 'User'));
  11.  
  12. if (count($errors) > 0) {
  13. return new Response(
  14. (string) $errors
  15. );
  16. }
  17. return new Response('ok!');
  18. }
  19. }


Całość działa dobrze tylko jest problem z kolejnością walidacji, jak podaje dokumentacja najpierw powinno sprawdzić grupę User, a jeśli będą błędy to nie przejść do grupy Admin, u mnie na ekranie wywala wszystkie 3 błędy, choć powinien chyba 1.

__EDIT__

Dla potomnych. Jeśli używamy kolejności sprawdzania to musimy darować sobie w wywołaniu metody validate wybrania grup, które chcemy sprawdzać.