我有一个自定义表单类型,用于定义一些默认的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" ...>
我如何获得它以便合并这些选项而不是完全覆盖?
答案 0 :(得分:1)
您可以在作为自定义类型的options
方法的第二个参数传递的buildForm
数组中找到它们。你可能想做这样的事情:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$options['attr']['data-label'] = 'Logo';
...