При попытке передать метод buildForm
в одной из моих форм возникает следующая ошибка.Опция не существует ошибка при передаче через опцию из контроллера в встроенную форму Symfony
Опция «numOfHoles» не существует. Определенные параметры: «действие», «allow_extra_fields», «attr», «auto_initialize», «block_name», «by_reference», «cascade_validation», «составные», «ограничения», «csrf_field_name», «csrf_message», «csrf_protection», «csrf_provider», «csrf_token_id», «csrf_token_manager», «data», «data_class», «disabled», «empty_data», «error_bubbling», «error_mapping», «extra_fields_message», «inherit_data», , «invalid_message», «invalid_message_parameters», «label», «label_attr», «label_format», «mapped», «max_length», «method», «pattern», «post_max_size_message», «property_path», «read_only», требуется "," translation_domain "," trim "," validation_groups "," virtual ".
В мой контроллер:
// hardcoded here for brevity in this example
$form = $this->createForm('crmpicco_course_row', $courseRow, array('numOfHoles' => 18));
В crmpicco_course_row
Форма класса:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('course', 'crmpicco_course', array('numOfHoles' => $options['numOfHoles']))
;
}
В crmpicco_course
Форма класса:
public function buildForm(FormBuilderInterface $builder, array $options)
{
for ($i = 0; $i < $options['numOfHoles']; $i++) {
$builder->add($i, 'text', array('required' => 'false'));
}
}
/**
* @return string name
*/
public function getName()
{
return 'crmpicco_course';
}
Может кто-нибудь понять, почему вариант numOfHoles
не п убирать?
Вы должны добавить опцию 'numOfHoles', используя функцию' setDefaults' или 'setRequired' внутри' configureOptions (OptionsResolver $ resolver) 'вашего построителя форм. –