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