У меня есть 3 «основных» лица: Наберите «А а также TypeB связано с пользователь отношением ManyToOne.
У меня есть 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);
//...
}
Как видите, мне нужно продублировать каждое действие, чтобы они работали с каждой сущностью. Есть ли способ совместить эти действия? Тот же вопрос о вторичных объектах и их хранилищах.
Благодарю.
Создайте класс обслуживания, который выполняет логику и принимает, скажем, пользовательский тип в качестве параметра.
Других решений пока нет …