Учусь Symfony, и не совсем понимаю, как можно реализовать entity отзывов так, чтобы была одна таблица для отзывов, но их можно было назначить в разные сущности, такие как Article, Image, Post. Я рассуждаю так:
- у каждой из сущностей Article, Image, Post может быть много отзывов.
- но каждый из отзывов может быть только у одной из этих сущностей.
Например, один объект Article может иметь много экземпляров объекта Review - это же OneToMany, если я правильно понимаю. Значит класс Article получается такой (главным образом меня волнуют правильность свойств объектов и их аннотаций, ибо я могу напутать по неопытности):
// аналогичный класс и для сущностей Image и Post
class Article
/**
* @ORM\OneToMany(targetEntity="Review")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
private $reviews;
}
А вот как быть со сущностью отзыва - в него обязательно добавлять свойства всех 3х типов связей? Или вообще не добавлять никаких свойств?
class Review
/**
* @ORM\ManyToOne(targetEntity="Reviews")
*/
private $article;
/**
* @ORM\ManyToOne(targetEntity="Reviews")
*/
private $post;
/**
* @ORM\ManyToOne(targetEntity="Reviews")
*/
private $image;
}
Что то мне кажется, что я написал бред...
Возможно ли в этой ситуации обойтись одной сущностью отзыва Review? Или нужно сделать для каждой сущности свой объект отзыва, типа: ArticleReview для статей, ImageReview для отзывов к картинкам, и PostReview для отзывов к постам?
Сильно не пинайте пожалуйста - я только учусь))