Symfony2继承

时间:2012-11-14 17:15:07

标签: inheritance symfony

由于我们不仅可以在实体中使用继承,还可以在表单中使用继承,我设计了以下结构:

实体

  • 班级人员
  • 班主任延伸人
  • 班级学生延伸人

FormTypes

  • Class PersonType
  • 类ProfessorType扩展PersonType
  • Class StudentType扩展PersonType

现在,我的问题出在控制器中。我不知道是否应该为所有子实体使用person控制器,或者我是否应该为每个子类创建一个特定的控制器。

使用通用控制器对实体之间的共同逻辑有很大帮助,而且每次创建新子类时都不需要添加整个控制器,但另一方面,处理特定的控制器很复杂每个人的数据。例如,如果我加载一个“人”然后我想编辑或显示它我需要知道什么formtype和模板对应它,但这在该级别是不可能的。我应该使用嵌套的“if”来获取人的类,从而创建正确的表单类型和模板(硬编码)。这不会是“动态的”。

也许我可以使用不同的路线解决它,但我想知道这个问题的最佳(或至少是一个好的)解决方案是什么?我也应该在控制器中使用继承吗?怎么样?

1 个答案:

答案 0 :(得分:2)

我们需要更多地了解您的申请。

无论如何,这实际上取决于控制器的用途。您可以定义一个共同的祖先控制器,然后定义扩展前者的子控制器,您将在其中重新定义所需的方法。

当然,每个动作都需要特定的路线。