[英]Symfony 3: Many associations in one entity
我在一个实体中有2个关联
class User
{
/**
* @ORM\OneToOne(targetEntity="Employee")
* @ORM\JoinColumn(name="id", referencedColumnName="id")
*/
protected $employee;
/**
* @ORM\OneToOne(targetEntity="Client")
* @ORM\JoinColumn(name="id", referencedColumnName="id")
*/
protected $client;
//....
}
当我试图在数据库中生成关系时,我什么也没得到。 但是,只有一个协会,它正在运作。 我正在使用控制台命令:
doctrine:schema:update --force
为连接列尝试使用不同的名称。
class User
{
/**
* @ORM\OneToOne(targetEntity="Employee")
* @ORM\JoinColumn(name="employee_id", referencedColumnName="id")
*/
protected $employee;
/**
* @ORM\OneToOne(targetEntity="Client")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id")
*/
protected $client;
//...
}
根据您对Akash的评论,您真正想要的是没有任何工作就如何布置的。 最简单的方法是在其他2个表上增加一列。
class User
{
/**
* @ORM\OneToOne(targetEntity="Employee", mappedBy="user")
*/
protected $employee;
/**
* @ORM\OneToOne(targetEntity="Client", mappedBy="user")
*/
protected $client;
//...
}
class Employee
{
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="employee")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
//...
}
class Client
{
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="client")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
//...
}
供参考,请参阅文档以获取有关双向关联的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.