我使用Symfony2
與。 我在我的應用程序中有5個實體。Doctrine2 AssociationTo ManyToMany雙向和插入操作的唯一OneToMany關係
- 書
- 關鍵字(雙向,應取具有特定關鍵字的所有書籍)
- 作者(雙向,應取具有特定作者本人所有書籍)
- 類別(雙向,應獲取所有書籍落入特定類別)
BookExtra(單向,在書的實體,應取BookExtra數據)
- 每本書可以有多個關鍵字
- 每本書可以有多個作者
- 每本書都可以落入一個類別
- 每本書有一個確切的BookExtra記錄。
- 關鍵字和作者表應包含唯一值
當一個新的Book
加,如果Author(s)
和Keyword(s)
存在,尊重Author ID
和Keyword ID
應分配給Book
,如果不存在,則將創建新的records
,並將受到尊重的ID
分配給Book
。
我有以下Entity Classes
:
Book.php
namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Book
*
* @ORM\Table(name="book")
* @ORM\Entity
*/
class Book {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="isbn", type="string", length=16)
*/
protected $isbn;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
protected $title;
/*
* @ORM\OneToOne(targetEntity="BookExtra")
* @ORM\JoinColumn(name="extra_id", referencedColumnName="id")
*
* ********* OR *********
* *********What should go HERE*********
*
*/
protected $bookextra;
/*
* @ORM\ManyToMany(targetEntity="Author", inversedBy="books")
* @ORM\JoinTable(name="authors_books")
*/
protected $author;
/*
* @ORM\OneToOne(targetEntity="Category")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
}
BookExtra.php
namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* BookExtra
*
* @ORM\Table(name="book_extra")
* @ORM\Entity
*/
class Detail {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="data", type="string", length=255)
*/
protected $data;
}
Author.php
namespace Bookhut\BookBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Author
*
* @ORM\Table(name="author")
* @ORM\Entity
*/
class Author {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
protected $name;
// **********What should go HERE*********
protected $books;
}
Keyword
& Category
實體類似於筆者實體
問題是,當我使用cli
生成schema
時,它永遠不會生成Relationships/Associations
。
什麼應該是正確的Relationships/Associations
爲Book & Author
實體
我搜索了這個問題,並適當Relationships/Associations
我發現這一點:
Saving onetoone relation entities
doctrine2: in a one-to-many bidirectional relationship, how to save from the inverse side?
但它沒有幫助我。
有人可以舉例說明這種類型的Relationships/Associations
和insert
操作嗎?
謝謝,你能否提供一個例子在作者表中添加一個唯一記錄,以便它只包含唯一記錄?如果具有相同作者的另一本書將被分配給他們尊敬的身份證件(我已經描述過) – HelloWeb