我有一个可以有多种好处的项目实体。
当然我有一个Project表单类型来填写与项目相关的所有信息字段。
当我展示Project X时,我需要一个“看到好处”的链接。在那里,我有一个表单中的好处列表,我可以添加新的或删除。
关系Project - Benefit是一对多/多对一,没有连接表。
要创建表单视图,我考虑创建一个简单的“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将包含每个单一福利的所有字段。
问题是我不需要存储Benefits类实体,Benefits实体只是一组用于可视化目的的好处。
我不知道如何在不重复项目和福利之间以及福利和福利之间的相同关系的情况下解决问题。
我肯定错过了简单的出路......