我有一个抽象控制器,该控制器具有函数getStatusAction
,用于根据将作为参数的实体呈现状态。
abstract class HumanController extends CRUDController
{
public function getStatusAction(Human $human)
{
// return new Response ...
}
}
人类是实体类,但也是抽象的。例如,一个孩子就是男人。
所以我创建了一个ManController
class ManController extends HumanController
{
}
如果我现在在我的树枝模板中调用类似以下内容的getStatusAction
{{ path('path_to_man_controller_status_action', {'human' : '12'}) }}
发生错误,因为某些机制试图猜测我的参数是一个抽象类的人。但这无法实例化。
提供的Human类是抽象的,不能实例化
相反,我希望该机制从我的具体类(在这种情况下为Man
)中加载实体。
是的,框架不知道类的含义,但是如何解决呢?我想拥有一个核心功能,该功能要对我所有属于人类班级的孩子的实体进行处理。我不想在子类中一遍又一遍地编写getStatusAction函数。
那么,是否至少有可能覆盖抽象类的函数定义(使用getStatusAction(Man $man)
),但保留原始类的实现?
如果没有,是否可以关闭symfony自动实体加载机制以仅通过我的函数传递实体?
还有其他一些聪明的主意吗?谢谢。