2015-09-16 117 views
-2

一開始爲我可憐的英語感到遺憾,我希望你能理解我。我在Symfony2中編寫了一個簡單的門戶網站,並且需要使用MySQL與表之間建立關係,所有瀏覽互聯網的方式都經過了測試,而且沒有任何東西出現。下表。Symfony2的關係 - OneToOne?

http://i.stack.imgur.com/vR77x.png

http://i.stack.imgur.com/GDXDw.png

現在是,通過獲得來自數據庫的用戶,我想一旦拉長到專業(職業),但它的名字聯繫在一起,甚至是一種選擇?

+1

[Symfony一對一關係]的可能重複(http://stackoverflow.com/questions/11190308/symfony-one-to-one-relation) – RiggsFolly

回答

0

如果我理解正確,您希望在您的實體之間創建OneToOne關係?

在播放機實體:

/** 
* Player 
* 
* @ORM\Table(name="players") 
* @ORM\Entity() 
*/ 
class Player 
{ 
    /** 
    * @ORM\OneToOne(targetEntity="Vocation", inversedBy="player") 
    * @ORM\JoinColumn(name="vocation", referencedColumnName="id") 
    */ 
    private $vocation; 

    ... 
} 

,並在職業一個

/** 
* Vocation 
* 
* @ORM\Table(name="vocations") 
* @ORM\Entity() 
*/ 
class Vocation 
{ 
    /** 
    * @ORM\OneToOne(targetEntity="Player", mappedBy="vocation") 
    */ 
    private $player; 

    /** 
    * @var string 
    */ 
    private $vocationName; 

    /** 
    * @var integer 
    */ 
    private $id; 

    ... 
} 

像這樣的事情?

另外(從看你的桌子)也許你可能想要一個ManyToOne關係,而不是OneToOne?

+0

仍然不起作用,我不知道是什麼我做錯了,代碼如下 http://wklej.org/id/1797836/ http://wklej.org/id/1797837/ – Danon

+0

你正在使用'inversedBy =「player」'但你的「 DanonaccVocations「實體不包含該屬性。 另外,將'@ORM \ Entity()'註釋添加到實體中並不會造成傷害。 – Restless

+0

將'inversedBy =「player」'更改爲'inversedBy =「vocationName」',添加了@ORM \ Entity()'註釋並且沒有任何東西,我測試它以便http://wklej.org/id/1797866/並獲取' int 2'作爲回答。 – Danon