2013-07-02 7 views
0

Я пытаюсь использовать cascade_validation внутри формы, но это не сработает. У меня есть объект Formulario которые имеют выдержанные вопросов, поэтому я вставляю форму вопроса внутри Formulario формируют таким образом:Каскадная форма проверки внутри формы

class FormularioType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 

     $builder 
      ->add('nombre') 
      ->add('preguntasPonderadas', 'collection', array(
       'type' => new QuestionType(), 
       'allow_add'=>true, 
       'allow_delete'=>true, 
       'cascade_validation'=>true, 
      )) 
     ;  
    } 
} 

вопрос компания имеет Assert так:

class Question 
{ 
    /** 
    * @var integer 
    * 
    * @Assert\Range(
    *  min = 1, 
    *  max = 5, 
    *  minMessage = "El valor mínimo es 1", 
    *  maxMessage = "El valor máximo es 5" 
    *) 
    * 
    * @ORM\Column(name="peso", type="integer") 
    * 
    */ 
    private $peso; 
} 

проблема в том, что утверждение диапазона объекта Question работает, если я создаю вопрос из формы вопроса, но если я создаю вопрос внутри формы Formulario, он не работает и разрешает номера из диапазона. Пустое ограничение поля работает, а недопустимый тип тоже работает (например, если я пишу письмо), даже без использования cascade_validation.

Проблема в том, что ограничение диапазона не работает из формы Formulario.

Любая идея ?? Танск много !!!!

ответ

1

Вы должны также добавить 'cascade_validation' => true в функцию setDefaultOptions вашего FormularioType класса, чтобы он работал.

/** 
* Sets the default options for this type. 
* 
* @param OptionsResolverInterface $resolver The resolver for the options. 
*/ 
public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'Formulario', 
     'cascade_validation' => true 
    )); 
} 
Смежные вопросы