这是我的问题。我的包中有几个实体。我试图制作一个管理电影的软件包。但是,在一些情况下,演员也可以是导演,反之亦然。所以我把它们命名为“艺术家”。然后,在每部电影中,在电影实体中,我想分配几个“艺术家”作为导演,一对夫妇作为演员,一对夫妇作为剧本/作家。但是,我无法多次使用ManyToMany关系引用Artist实体。这是我想要做的:学说和Symfony2多个manytomany参考
/**
* @ORM\Entity
* @ORM\Table(name="movies")
*/
class Movie
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $title;
/**
* @ORM\Column(type="string", length=100)
*/
protected $image;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $actors;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $directors;
/**
* @ORM\ManyToOne(targetEntity="Artist", inversedBy="movies")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $writers;
我该如何避免这个问题?
为什么多对一?如果演员在电影中扮演多个角色(即指挥并同时在其中扮演角色),该怎么办?我相信一些演员已经做到了。那将是一个很多的东西呢? – user1158667 2012-04-08 17:44:32
这不是电影实体。这是用于连接两个实体的实体,如使用多对多时生成的一个教条。通过这种方式,你有一个电影实体,一个角色实体和这个实体来加入它们。当你想添加一个艺术家到电影中时,你坚持这个实体(MovieRole)添加相关的电影,艺术家和角色。电影实体和角色实体彼此不知道,只有这个表使它们之间的连接成为可能。这样,您可以尽可能多地将艺术家添加到同一部电影中。 – 2012-04-08 18:25:25
为什么多对一呢?因为任何艺术家都可以扮演一个角色,但角色只能由一位艺术家举办?我正确地得到这个吗? – user1158667 2012-04-08 18:33:37