symfony - 如何通过嵌入表单存储中间实体

标签 symfony symfony-forms

我希望用户填写一个表单,然后创建并存储多个 Doctrine 实体 - 一个 Company 实体和一个相关的 User 实体。

我已经了解了嵌入式表单以及如何将“子表单”嵌入到相关实体的主表单中。

但是,我的两个实体通过中间实体Team Membership 关联起来,该实体是在连接表companies_users 之上构建的实体。该实体是必要的,因为我跟踪有关每个关系的一些额外数据。

我没有找到任何关于此的文档。在这种情况下使用嵌入式表单是否可能甚至实用?是否有某种方法可以定义目标相关实体(User)的嵌入表单也应该创建一个中间实体?

我希望我的表单有一个数据类,因为我喜欢验证器注释,并且直接在表单类上设置验证规则似乎不够健壮,而且看起来很不优雅。

感谢您的回答。

最佳答案

您可以创建中间实体的表单,即使它不包含任何字段。我实际上在我的一些项目中使用了它,如下所示:

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('team_membership', TeammembershipType::class, [
                'label' => false
            ]);
    }

然后在 TeammembershipType 中:

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('user', UserType::class, [
                'label' => false
            ]);
    }

您还可以在中间表单的事件中设置团队成员数据。

关于symfony - 如何通过嵌入表单存储中间实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46896814/

相关文章:

php - Symfony 表单将选择的用户兴趣存储到 UserInterests

php - 如何在 Symfony 2 表单中验证日期时间格式 "yyyy-MM-ddTHH:mm:ss.sssZ"

php - 重建 VM 后 apache2 中的 Symfony2 URL 404

symfony - 文件上传中的错误消息自定义

Symfony 表单 : Uploaded file - "This value should be of type string"

symfony - Symfony2 中的服务依赖注入(inject)

Symfony 2隐藏表单字段文本

php - 在 Twig 中如何比较日期是否在 X 天内?

symfony - Doctrine 迁移在项目中间开始

php - Symfony2 插入错误参数[null,null,null]