我正在创建一个包含多个页面和多个图像的网站。关系是许多页面可以有许多图像。因此,我通常会创建一个名为 page_images 的连接表,其中包含 page_id 和 image_id。我还需要连接表中的位置字段,以便可以订购每个页面的图像。
我今天一直在看 Doctrine 并使用 Symfony2 实体来创建数据库。我尝试使用元数据使用多对多关系,但这为我创建了仅包含 page_id 和 image_id 的连接表。我不确定如何添加位置字段或任何其他字段,这可能吗?
我假设的替代方法是创建从页表到 page_images 表以及从图像表到 page_images 表的一对多关系,这意味着我还需要一个 PageImage 实体类。
有人可以建议这种情况下的最佳做法是什么?我一直在查看http://docs.doctrine-project.org/en/latest/reference/working-with-associations.html但文档没有提到您是否可以向连接表添加其他字段。
更多信息:
class Image {
/**
*
* @ORM\OneToMany(targetEntity="PageImage", mappedBy="image")
*/
private $page_images;
}
class Page {
/**
*
* @ORM\OneToMany(targetEntity="PageImage", mappedBy="page")
*/
private $page_images;
}
class PageImage {
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Page", inversedBy="page_images")
* @ORM\JoinColumn(name="page_id", referencedColumnName="id")
*/
private $page;
}