如何通过嵌入式表单存储中间实体
How to store intermediary entities via embedded forms
我希望用户填写一个表单,然后创建并存储多个 Doctrine 实体 - 一个 Company
实体和一个相关的 User
实体。
我已经阅读了有关嵌入式表单以及如何将 "sub-form" 嵌入到相关实体的主表单中的方法。
但是,我的两个实体通过中间实体 Team Membership
关联 - 一个在连接 table companies_users
之上构建的实体。这个实体是必要的,因为我跟踪了一些关于每个关系的额外数据。
我没有找到任何关于此的文档。在这种情况下使用 embedded
形式是否可能甚至实用?有什么方法可以定义目标相关实体 (User
) 的嵌入形式也应该创建一个中间实体吗?
我希望我的表单有一个数据class,因为我喜欢Validator注解并且直接在表单上设置验证规则class似乎不够健壮,而且看起来很不优雅。
感谢您的回答。
您可以创建中间实体的表单,即使它不包含任何字段。我实际上在我的一些项目中使用它,像这样:
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
]);
}
您还可以在中间表单的事件中设置团队成员数据。
我希望用户填写一个表单,然后创建并存储多个 Doctrine 实体 - 一个 Company
实体和一个相关的 User
实体。
我已经阅读了有关嵌入式表单以及如何将 "sub-form" 嵌入到相关实体的主表单中的方法。
但是,我的两个实体通过中间实体 Team Membership
关联 - 一个在连接 table companies_users
之上构建的实体。这个实体是必要的,因为我跟踪了一些关于每个关系的额外数据。
我没有找到任何关于此的文档。在这种情况下使用 embedded
形式是否可能甚至实用?有什么方法可以定义目标相关实体 (User
) 的嵌入形式也应该创建一个中间实体吗?
我希望我的表单有一个数据class,因为我喜欢Validator注解并且直接在表单上设置验证规则class似乎不够健壮,而且看起来很不优雅。
感谢您的回答。
您可以创建中间实体的表单,即使它不包含任何字段。我实际上在我的一些项目中使用它,像这样:
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 ]); }
您还可以在中间表单的事件中设置团队成员数据。