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