symfony 2表单的默认选项正在被覆盖而不是合并

时间:2014-12-11 20:09:17

标签: php symfony symfony-forms symfony-2.6

我有一个自定义表单类型,用于定义一些默认的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 个答案:

答案 0 :(得分:1)

您可以在作为自定义类型的options方法的第二个参数传递的buildForm数组中找到它们。你可能想做这样的事情:

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