3
我有兩個表:用戶和聯繫人主義 - 如何建立一個對一個實體關係之間的兩個
用戶
- ID
- 用戶名
聯繫方式
- ID
- USER_ID
- 電子郵件 (我已經簡化了結構)
現在,如何設置主義實體是否正確?
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User extends BaseEntity {
/**
* @Id
* @GeneratedValue
* @Column(type="bigint")
*/
protected $id;
/**
* @ORM\Column(type="string", unique=true)
*/
protected $username;
/**
* @ORM\OneToOne(targetEntity="Contact")
* @ORM\JoinColumn(name="id", referencedColumnName="user_id", onDelete="CASCADE")
**/
protected $contact;
}
聯繫單位:
/**
* @ORM\Entity
* @ORM\Table(name="contacts")
*/
class Contact extends BaseEntity {
/**
* @Id
* @GeneratedValue
* @Column(type="bigint")
*/
protected $id;
/**
* @var User
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
/**
* @ORM\Column(type="string")
*/
protected $email;
}
的事情是,我不知道該實體關係是否設置正確。
- 我不知道如何在
User
被刪除,然後刪除Contact
而不是其他方式設置。 - 如果我創建
$user = new User()
然後$contact = new Contact()
如何加入它們?$user->contact = $contact
?persist()
和flush()
是否正確填寫user_id
並將數據插入到兩個表中? - 我得到錯誤
A new entity was found through the relationship '...\User#contact' that was not configured to cascade persist operations for entity: ...\[email protected] To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement '...\Contact#__toString()' to get a clue.
我被困在這一個,我認爲這與我的問題#1有關,因此我無法測試#2。
我一直在瀏覽文檔數小時,但我卡住了,我沒有找到任何真正的例子,可以指導我......任何人都可以通過向我展示這些實體關係的適當配置來幫助我嗎?
好的,謝謝你,這聽起來不錯。雖然,我嘗試設置'cascade = {「persist」,「remove」})'當我做'$ user = new User()''$ contact = new Contact()''$ user-> contact = $ contact ''$ entityManager-> persist($ user)''$ entityManager-> flush()'用戶被創建但沒有聯繫。我究竟做錯了什麼? – simPod 2014-12-28 13:15:21
如果我手動'堅持($聯繫)'它的工作。我必須這麼做嗎?或者我可以通過'@ ORM'註釋來包含它嗎? – simPod 2014-12-28 13:21:59
@simPod將'cascade = {「persist」,「remove」})'添加到'User'實體的'$ contact'屬性應該允許您將一個未保留的聯繫人添加到'User'。 'User'中是否有其他映射可能導致問題? – FuzzyTree 2014-12-28 18:06:05