此問題涉及使用ORM的Symfony2表關係。我有三個相互關聯的表/實體。這種關係與Wordpress的帖子,分類和分類關係表非常相似。Symfony2在另一個實體中獲取實體的實體
表1包含帖子。 表2包含類別 表3包含類別和帖子之間的關係。
我希望能夠在posts表中擁有categories屬性,並在categories表中擁有posts屬性。所以,當我打電話。
分類 - >職位:我應該得到該類別的職位。 的帖子 - >類別:我應該得到帖子所屬的類別。
我想每個表都有獨特的類別,我希望所有的帖子都指向一個類別,而不必爲已經存在的類別創建一個新的條目,這就是ManyToOne或OneToMany所提供的,這就是爲什麼第三個表I認爲是必要的。
例如這裏是關係
class Category_relationship
{
/**
* @var integer
*
* @ORM\Column(name="object_id", type="bigint")
*
* @ORM\ManyToOne(targetEntity="Worksheet", inversedBy="category_relationships")
* @ORM\JoinColumn(name="worksheet_id", referencedColumnName="id", nullable=FALSE)
*/
private $objectId;
/**
* @var integer
*
* @ORM\Column(name="category_id", type="bigint")
*
* @ORM\ManyToOne(targetEntity="Category", inversedBy="categories")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id", nullable=FALSE)
*/
private $categoryId;
}
這裏是Category類:
class Category
{
/**
* @ORM\OneToMany(targetEntity="Category_relationship", mappedBy="categoryId", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
protected $posts;
}
這裏是Category類:
class Posts
{ /**
* @ORM\OneToMany(targetEntity="Category_relationship", mappedBy="objectId", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
protected $categories;
}
我想創建一個系統,我可以將帖子分配給一個類別,但類別表只能包含1個關於該類別的條目。我也希望能夠使用表達式鏈接;
後>類別 類別 - >帖子
或
後> AddCategory() 類別 - > AddPost()
感謝您的幫助。
找到所有這些信息我不確定爲什麼你認爲多對一的關係不適合你需要的東西,我認爲他們會很好地工作。你有沒有嘗試過實施這個? –
並且不需要第三個表格,您可以在擁有的一面使用外鍵處理此問題(原則處理所有這些問題) –
問題是我不希望在類別中創建同一類別的多個條目表每次我附加一個類別的職位。我希望有一個獨特類別的記錄,並且可以將許多帖子分配給該類別。帖子可能有很多類別。 – user3072613