Forms 符号形式重复位

Forms 符号形式重复位,forms,symfony,symfony-2.8,Forms,Symfony,Symfony 2.8,我有两个实体,它们使用traits获得相同的属性和行为,而无需重复代码 一个很好的例子是“startDate”和“endDate”,用于blogpost、文章或任何您想要为显示目的提供开始/结束日期的内容。(请不要问你为什么要给一篇博客文章一个结束日期) 可以想象,表单元素也会重复 防止在我的表单类型中重复这段代码的最佳方法是什么 我考虑过侦听器/订阅者,但这并不取决于实际数据 我也可以在这里使用trait,并在trait中调用一个方法。这将非常有效,但可能看起来有点奇怪。此外,这并没有使用任何

我有两个实体,它们使用traits获得相同的属性和行为,而无需重复代码

一个很好的例子是“startDate”和“endDate”,用于blogpost、文章或任何您想要为显示目的提供开始/结束日期的内容。(请不要问你为什么要给一篇博客文章一个结束日期)

可以想象,表单元素也会重复

防止在我的表单类型中重复这段代码的最佳方法是什么

我考虑过侦听器/订阅者,但这并不取决于实际数据

我也可以在这里使用trait,并在trait中调用一个方法。这将非常有效,但可能看起来有点奇怪。此外,这并没有使用任何symfony的表单功能,这些功能可能正是我想要的


我可以在这里使用Symfony表单功能吗?

一个可能的解决方案是使用trait

trait YourRepetitiveFieldsTypeTrait
{
    public function buildFormYourRepetitiveFields(FormBuilderInterface $builder, array $options)
    {
        // add form fields as you would normally
    }
}
然后在你需要的每一种类型中都包含这个特性。并调用
buildForm
中的方法:

$this->buildFormYourRepetitiveFields($builder, $options);

方法名称不同的原因是为了避免在主类中导入时发生冲突。

是的,它们是必填字段。