簡體   English   中英

堅持與學說協會的實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM