簡體   English   中英

反向外鍵學說

[英]Inversed foreign key doctrine

我的實體User和UserMeta之間有一個OneToOne關系

我想訪問User中的UserMeta,但在mysql數據庫的UserMeta表中設置外鍵:

class User implements UserInterface{

   /**
     * @ORM\Column(type="integer", unique=true)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\OneToOne(targetEntity="Foo\Bar\Entity\UserMeta", cascade={"persist"}, inversedBy="id_user")
     * @ORM\JoinColumn(nullable=true)
     * @ORM\Column(name="id_pro")
     */
    private $proData;
}


class UserMeta{
    /**
     * @ORM\Column(type="integer", unique=true)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\OneToOne(targetEntity="Foo\Bar\Entity\User", mappedBy="id_pro")
     * @ORM\JoinColumn(nullable=true)
     * @ORM\Column(name="id_user")
     */
    private $user;
}

無論如何用學說來做? 我想我誤解了映射屬性和逆屬性。

您的映射配置錯誤。

在您的用戶類中,它應顯示為:

/**
 * @ORM\OneToOne(targetEntity="Foo\Bar\Entity\UserMeta", cascade={"persist"}, inversedBy="user")
 * @ORM\JoinColumn(nullable=true)
 */
private $proData;

在您的UserMeta類中,它應顯示為:

/**
 * @ORM\OneToOne(targetEntity="Foo\Bar\Entity\User", mappedBy="proData")
 * @ORM\JoinColumn(nullable=true)
 */
private $user;

您也不需要@ORM \\ Column指令,因為Doctrine2將自動為您執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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