我有 3 个“主要”实体:TypeA 和 TypeB 通过 ManyToOne 关系链接到 User。
我有 2 个“辅助”实体:UserTypeA 和 UserTypeB,它们包含 ManyToOne 关系的属性(例如,用户分配给产品的评论) A 型)。这两个实体及其存储库相似(除了一个链接到 TypeA,另一个链接到 TypeB)。
这是我的代码的一部分:
public function typea_commentAction(TypeA $typea)
{
$user = $this->getUser();
$userTypeA = $this->getDoctrine()
->getManager()
->getRepository('GamUserBundle:UserTypeA')
->getComment($user, $typea);
//...
}
public function typeb_commentAction(TypeB $typeb)
{
$user = $this->getUser();
$userTypeB = $this->getDoctrine()
->getManager()
->getRepository('GamUserBundle:UserTypeB')
->getComment($user, $typeb);
//...
}
如您所见,我需要复制每个操作以使它们适用于每个实体。有什么办法可以将这些 Action 结合起来吗?关于辅助实体及其存储库的同样问题。
谢谢。
最佳答案
创建一个执行逻辑的服务类,并将用户类型作为参数。
关于php - 如何减少 Symfony2 中的代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760355/