Tôi có hai lớp mô hình PHP có tên là Category và Item. Danh mục có thể có nhiều mục và một mục có thể thuộc nhiều danh mục. Tôi đã tạo ra một mối quan hệ ManyToMany cho cả lớp:Symfony2-Doctrine: Mối quan hệ ManyToMany không được lưu vào cơ sở dữ liệu
class Category
{
/**
* @ORM\ManyToMany(targetEntity="Item", mappedBy="categories", cascade={"persist"})
*/
private $items;
/**
* Add items
*
* @param Ako\StoreBundle\Entity\Item $items
*/
public function addItems(\Ako\StoreBundle\Entity\Item $items)
{
$this->items[] = $items;
}
/**
* Get items
*
* @return Doctrine\Common\Collections\Collection
*/
public function getItems()
{
return $this->items;
}
}
Và:
class Item
{
/**
* @ORM\ManyToMany(targetEntity="Category", inversedBy="items", cascade={"persist"})
* @ORM\JoinTable(name="item_category",
* joinColumns={@ORM\JoinColumn(name="item_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}
*)
*/
private $categories;
/**
* Add categories
*
* @param Ako\StoreBundle\Entity\Category $categories
*/
public function addCategories(\Ako\StoreBundle\Entity\Category $categories)
{
$this->categories[] = $categories;
}
/**
* Get categories
*
* @return Doctrine\Common\Collections\Collection
*/
public function getCategories()
{
return $this->categories;
}
}
Bây giờ trong điều khiển của tôi:
$em = $this->getDoctrine()->getEntityManager();
$item = $em->getRepository('AkoStoreBundle:Item')->find($item_id);
$category = $em->getRepository('AkoStoreBundle:Category')->find($category_id);
$category->addItems($item);
$em->flush();
// Render the same page again.
Trong trang này, tôi hiển thị danh sách tất cả các mục trong một trường chọn. Người dùng có thể chọn một mục và thêm nó vào danh mục.
Danh sách các mục thuộc về danh mục được hiển thị bên dưới biểu mẫu.
Khi tôi gửi biểu mẫu, mục đã chọn sẽ được thêm vào danh sách mục danh mục và được hiển thị bên dưới, nhưng nó không được lưu trữ trong cơ sở dữ liệu và nếu làm mới trang, nó sẽ biến mất.
Có ai có thể giúp tôi với điều này không? Cảm ơn trước.
Trên bài giúp tôi rất nhiều để lập bản đồ Nhiều người đến Nhiều bản đồ trong Entity. Có liên kết tài liệu tốt (đầy đủ) nào hiển thị tất cả các loại ánh xạ cơ sở dữ liệu (ánh xạ thực thể) không? – Kiran