我有一個實體'上市'與OneToMany實體'視圖',這些之間的關鍵是view.content_id它擁有列表的ID,但是,它也涉及到其他實體,所以通過添加Doctrine2 OneToMany without mappedBy
/**
* @var Listing
*
* @ORM\ManyToOne(targetEntity="\Acme\Bundle\Entity\Listing", inversedBy="views")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="content_id", referencedColumnName="id")
* })
*/
private $listing;
要認爲它剎車,因爲保存視圖實體時的content_id變爲零。
我該如何解決?上列出側
關聯:
/**
* @var views
*
* @ORM\OneToMany(targetEntity="\Acme\Bundle\Entity\View", mappedBy="listing")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id", referencedColumnName="content_id")
* })
*/
private $views;
我正在通過加入Listing.views並添加WITH CONTENT_TYPE =查詢:其中的ContentType判別一些 '視圖' 的結果。
您收到的錯誤不會告訴您使用'cascade = {「persist」}'? – cheesemacfly
沒有錯誤,這是一種有效的方法。但是,當保存「視圖」時,content_type字段將變爲空,因爲有兩個註釋指向此列。 – Paxton
通常不需要第二個'JoinColumns'或'JoinColumn'註釋,因爲有一個'owner'和一個'inverse'側面。我的猜測是,你的代碼中的那些註釋正在引起某種衝突,所以Doctrine無法解析哪個網站是什麼... –