由于我们不仅可以在实体中使用继承,还可以在表单中使用继承,我设计了以下结构:
实体
- 班级人
- 班教授扩展人
- 学生类扩展人
表单类型
- 类 PersonType
- 类 ProfessorType 扩展 PersonType
- StudentType 类扩展了 PersonType
现在,我的问题出在控制器上。我不知道是否应该对所有子实体使用 person 控制器,或者是否应该为每个子类创建一个特定的控制器。
使用通用控制器对实体之间的共同逻辑有很大帮助,而且每次创建新子类时都不需要添加整个控制器,但另一方面,处理每个子类的特定数据很复杂一。例如,如果我加载一个“人”,然后我想编辑或显示它,我需要知道它对应的表单类型和模板,但这在那个级别是不可能的。我应该使用嵌套的“if”来获取人的类,从而创建正确的表单类型和模板(硬代码)。这不会是“动态的”。
也许我可以使用不同的路线解决它,但我想知道这个问题的最佳(或至少是一个好的)解决方案是什么?我也应该在控制器中使用继承吗?如何?