我正在使用Zend-Framework 2和Doctrine 2.
在我正在开发的应用程序中,我在不同的命名空间下有2个实体:
在Application\Apps\Timesheet\Entity\Worklog
中,每个工作日志都有一个用户,因为实体位于不同命名空间下的不同模块中,我想在Worklog实体中存储单向用户关系。
目前,我使用以下结构存储Worklog与用户之间的关系。
class Worklog
{
/**
* Worklog Identifier.
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
* @var integer
* @access protected
*/
protected $id;
/**
* User who logged the work
*
* @ORM\ManyToMany(targetEntity="Application\Apps\Timesheet\Entity\User",cascade={"persist", "remove"})
* @ORM\JoinTable(name="timesheet_worklog_user",
* joinColumns={@ORM\JoinColumn(name="worklog_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
* )
* @var object
* @access protected
*/
protected $user;
}
虽然,这项工作,这个方法的问题是,它将关系存储在另一个表中,我想知道是否可以将用户关系存储在具有列{{1}的同一worklog
表中,有人可以在这里给我一些指针吗?
以下是我正在使用的代码:
user_id
谢谢。
答案 0 :(得分:0)
对于有类似问题的人,我通过更改
解决了这个问题/**
* User who logged the work
*
* @ORM\ManyToMany(targetEntity="Application\Apps\Timesheet\Entity\User",cascade={"persist", "remove"})
* @ORM\JoinTable(name="timesheet_worklog_user",
* joinColumns={@ORM\JoinColumn(name="worklog_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
* )
* @var object
* @access protected
*/
protected $user;
到
/**
* User who logged the work
*
* @ORM\ManyToOne(targetEntity="System\User\Entity\User",cascade={"persist", "remove"})
* @var object
* @access protected
*/
protected $user;
感谢@Cerad指向正确的方向。