Php 坚持实体主义与联想主义
我在尝试使用条令来保持实体与关联时遇到困难 下面是我所属方的映射:(User.php) 相反的方面没有映射,我尝试了Php 坚持实体主义与联想主义,php,orm,doctrine,Php,Orm,Doctrine,我在尝试使用条令来保持实体与关联时遇到困难 下面是我所属方的映射:(User.php) 相反的方面没有映射,我尝试了(OneToMany),但似乎没有什么不同 基本上,我正在将默认值2(整数)传递给一个方法setRole\u id,但当我实际去持久化实体时,它显示为空,这会导致MySQL错误,因为该列不允许null 编辑1: 从字面上说,只是为了角色_id而坚持这一点 $this->user->setRole\u id(2) 干杯 Ewan您的映射似乎不正确。尝试按如下方式重写它: /**
(OneToMany)
,但似乎没有什么不同
基本上,我正在将默认值2(整数)
传递给一个方法setRole\u id
,但当我实际去持久化实体时,它显示为空,这会导致MySQL错误,因为该列不允许null
编辑1:
从字面上说,只是为了角色_id而坚持这一点
$this->user->setRole\u id(2)
干杯
Ewan您的映射似乎不正确。尝试按如下方式重写它:
/**
* @ManyToOne(targetEntity="Roles\Entities\Role")
* @JoinColumn(name="role_id", referencedColumnName="id", nullable=false)
*/
private $role;
换句话说,您只需要将角色\u id
描述为关系的join列。您不需要将其映射为“普通”列。然后只需编写并使用如下声明的常规setter:
public function setRole(Roles\Entities\Role $role) {
$this->role = $role;
}
使用上述内容而不是$this->user->setRole\u id(2)
,并持久化您的用户实体。条令应该自动为您在外键字段中存储正确的实体ID
public function setRole(Roles\Entities\Role $role) {
$this->role = $role;
}