我在用户实体中有以下非列属性
/**
*
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Company", inversedBy="user")
* @ORM\JoinColumn(name="companyID", referencedColumnName="id")
*/
protected $company;
/**
*
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Role", inversedBy="user")
* @ORM\JoinColumn(name="roleID", referencedColumnName="id")
*/
protected $role;
我在用户表中没有列角色或公司。但是我确实在用户表中的列 roleID 和 companyID 以及用户实体中的它们各自的属性如下
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Role", inversedBy="user")
* @ORM\JoinColumn(name="roleID", referencedColumnName="id")
*/
protected $roleID;
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Company", inversedBy="user")
* @ORM\JoinColumn(name="companyID", referencedColumnName="id")
*/
protected $companyID;
在用户控制器中,当我尝试使用以下行添加记录时,它成功添加了记录,但没有 roleID 和 companyID
$userData = array("username" => $username, "pass" => $secPass,
"salt" => $salt, "companyID" => $companyID,
"roleID" => $roleID, "cost" => $cost
);
$user->populate($userData);
$this->getEntityManager()->persist($user);
$this->getEntityManager()->flush();
但是如果我从实体用户中删除这两个属性,那么它还会添加 roleID 和 companyID
protected $company;
protected $role;
但我还需要以上属性。我无法理解为什么会发生这种冲突,
有人遇到过这个问题吗?以及如何解决这个问题?任何的想法?