【问题标题】:symfony form repeated bitssymfony 形式重复位
【发布时间】:2016-01-16 10:49:41
【问题描述】:

我有几个实体使用特征来获得相同的属性和相同的行为,而无需重复代码。

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

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

防止在我的 FormType 中重复这段代码的最佳方法是什么?

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

我也可以在这里使用特征,并在特征中调用方法。这会很好用,但可能看起来有点奇怪。此外,这并没有使用 symfony 的任何表单功能,这些功能可能只是我想要的。

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

【问题讨论】:

  • 是的,它们是必填字段。

标签: forms symfony symfony-2.8


【解决方案1】:

可能的解决方案是使用特征。

trait YourRepetitiveFieldsTypeTrait
{
    public function buildFormYourRepetitiveFields(FormBuilderInterface $builder, array $options)
    {
        // add form fields as you would normally
    }
}

然后将此特征包含在您需要的每个类型中。并调用buildForm中的方法:

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

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

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 2011-07-09
    • 2022-08-04
    • 2019-03-31
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多