[英]Persisting entity with Doctrine association
我在嘗試使用Doctrine保留與關聯的實體時遇到麻煩。
這是我自己的映射:(User.php)
/** @Role_id @Column(type="integer") nullable=false */
private $role_id;
/**
* @ManyToOne(targetEntity="Roles\Entities\Role")
* @JoinColumn(name="role_id", referencedColumnName="id")
*/
private $role;
在反面沒有映射,我嘗試了(OneToMany)
,但似乎沒有什么不同。
基本上,我將默認值2 (integer)
傳遞給方法setRole_id
但是當我實際去保留會導致MySQL錯誤的實體時,它顯示為空白,因為該列不允許nulls
。
編輯1:
從字面上看只是堅持為role_id
$ this-> user-> setRole_id(2);
干杯,
伊萬
您的映射似乎不正確。 嘗試如下重寫:
/**
* @ManyToOne(targetEntity="Roles\Entities\Role")
* @JoinColumn(name="role_id", referencedColumnName="id", nullable=false)
*/
private $role;
換句話說,您只需要將role_id
描述為關系的連接列。 您無需將其映射為“常規”列。 然后,只需編寫並使用如下所示的常規setter:
public function setRole(Roles\Entities\Role $role) {
$this->role = $role;
}
使用上面的內容代替$this->user->setRole_id(2)
並保留您的用戶實體。 教義應自動為您在外鍵字段中存儲正確的實體ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.