我正在Symfony2中创建一个表单。表单有一个映射到实体数组的字段,如下所示:
$builder
->add('card', 'entity', array(
'class' => 'AppBundle:Card',
'property' => 'description',
'choices' => $choices
));
我在Controller中加载$ choices数组。如果我使用Controller中的FormBuilder创建表单,我可以轻松设置选项选项,但我想将它保留在自己的类中,以避免控制器膨胀。在创建表单时是否有一种干净的方式来注入$ choices数组?
答案 0 :(得分:1)
我不确定这是最好的方式,它看起来有点过度设计,但我最终将表单定义为这样的服务:
my_custom_form_service:
class: AppBundle\Form\MyFormType
calls:
- [ setUser, ["@security.context"] ]
tags:
- { name: form.type, alias: my_form }
我需要用户对象,因为我从该实体获取了选择数组。