Symfony2“;“假父母”;用于表单中的集合字段,仅用于可视化

Symfony2“;“假父母”;用于表单中的集合字段,仅用于可视化,symfony,doctrine-orm,symfony-forms,Symfony,Doctrine Orm,Symfony Forms,我有一个项目实体,可以有几个好处 当然,我有一个项目表单类型来填充与项目相关的所有信息字段 当我展示ProjectX时,我需要一个“查看好处”的链接。在那里,我有一个表单中的福利列表,我可以添加新的或删除 项目-效益关系是一对多/多对一的无联接表 为了创建表单的视图,我考虑创建一个“BenefitsFormType”(不是复数形式),它将是: class BenefitsFormType extends AbstractType { public function buildForm(F

我有一个项目实体,可以有几个好处

当然,我有一个项目表单类型来填充与项目相关的所有信息字段

当我展示ProjectX时,我需要一个“查看好处”的链接。在那里,我有一个表单中的福利列表,我可以添加新的或删除

项目-效益关系是一对多/多对一的无联接表

为了创建表单的视图,我考虑创建一个“BenefitsFormType”(不是复数形式),它将是:

class BenefitsFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('benefits', 'collection', array('type' => new BenefitFormType(), 'allow_add'    => true, 'label' => false,
                        'by_reference' => false,
                        ))
                ->add('submit', 'submit', array('label' => 'Save'));
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\Benefits',
        ));
    }

    public function getName()
    {
        return 'Benefits';
    }
}
而benefitFormType将拥有每个单一福利的所有领域

问题是我不需要存储福利类实体,福利实体只是一个用于可视化目的的福利集合

我不知道如何解决这个问题,而不复制我在项目和效益之间以及效益和效益之间的相同关系


我确实错过了简单的解决方法…

如果不需要存储值,请使用“mapped”=>false选项。是的,我知道该选项可以避免存储字段,但这里我们讨论的是整个实体