У меня есть пользовательский тип формы, который определяет некоторые по умолчанию 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" ...>
Как получить, чтобы эти параметры были объединены не полностью переопределены?
Вы можете найти их в options
массив передан в качестве второго аргумента buildForm
метод вашего пользовательского типа. Вы хотели бы сделать что-то вроде этого:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$options['attr']['data-label'] = 'Logo';
...
Других решений пока нет …