Параметры по умолчанию для форм Symfony 2 переопределяются, а не объединяются

У меня есть пользовательский тип формы, который определяет некоторые по умолчанию attr опции:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'invalid_message' => 'The selected image does not exist',
'attr'=>array(
'data-image-picker'=>'true',
'data-label'=>'Pick Image'
),
));
}

Однако, когда я использую эту пользовательскую форму, введите весь attr массив заменяется тем, что определено.

$builder->add('logo','image_picker',array(
'attr'=>array(
'data-label'=>'Logo'
),
));

Когда форма отображается, она имеет только <input data-label="Logo" ...>

Как получить, чтобы эти параметры были объединены не полностью переопределены?

1

Решение

Вы можете найти их в options массив передан в качестве второго аргумента buildForm метод вашего пользовательского типа. Вы хотели бы сделать что-то вроде этого:

public function buildForm(FormBuilderInterface $builder, array $options)
{
$options['attr']['data-label'] = 'Logo';
...
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]