Symfony 4一个实体的几种形式(步骤)

时间:2019-01-09 17:11:51

标签: php forms symfony

我有带有多个(30)字段的表和实体类。我不想建立一个大表格,但是例如要建立3个表格(每个表格10个字段),它将把以下字段保存在表的同一条记录中。 在纯PHP或我手动完成的其他更简单的框架中,这很容易做到。在许多事情更自动化的Symfony中,如何做到这一点? 我在寻找通用的技巧,使用哪种方法。

2 个答案:

答案 0 :(得分:1)

嘿,您可以使用symfony form component来创建表单,只需创建一个代表您实体的php类,别忘了<string>批注。
然后只需使用@ORM\Entity()通过使用给定实体类的元数据映射来生成表单类型类。

这取决于您的模型逻辑,您可以将表单与一个父表单解耦,而将另一个孩子的表单解耦...然后为每个孩子php bin/console generate:doctrine:form App:Entity这样称呼:

form type

然后再返回给您的控制器:

class ParentType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('summary', Child1Type::class)
            ->add('content', Child2Type::class)
            ...
     }
}

您也可以使用 DTO 获得良好的效果。分离表单是一种更好的解决方案,请阅读以下文章:https://williamdurand.fr/2013/12/16/enforcing-data-encapsulation-with-symfony-forms/ http://verraes.net/2013/04/decoupling-symfony2-forms-from-entities/

答案 1 :(得分:0)

您可能想看看https://github.com/craue/CraueFormFlowBundle完全符合您的要求:为大型表格创建多步表格。我在Symfony 4上有很好的使用经验。

也请check演示。