在Symfony FormType类中设置选项

时间:2016-02-10 16:20:12

标签: php forms symfony

我正在Symfony2中创建一个表单。表单有一个映射到实体数组的字段,如下所示:

$builder
    ->add('card', 'entity', array(
        'class' => 'AppBundle:Card',
        'property' => 'description',
        'choices' => $choices
    ));

我在Controller中加载$ choices数组。如果我使用Controller中的FormBuilder创建表单,我可以轻松设置选项选项,但我想将它保留在自己的类中,以避免控制器膨胀。在创建表单时是否有一种干净的方式来注入$ choices数组?

1 个答案:

答案 0 :(得分:1)

我不确定这是最好的方式,它看起来有点过度设计,但我最终将表单定义为这样的服务:

my_custom_form_service:
    class: AppBundle\Form\MyFormType
    calls:
        - [ setUser, ["@security.context"] ]
    tags:
        - { name: form.type, alias: my_form }

我需要用户对象,因为我从该实体获取了选择数组。