![](/img/trans.png)
[英]FOSRESTBundle - How to create a new entity and use an existing one in ManyToOne relationship?
[英]ManyToOne relationship + How to use in both directions
我有2張桌子,像這樣:
Users - UserID - Username - Password - ...
Players
- playerID
- playerName
- ...
- User
該關系是ManyToOne
(請參見圖片),並且不是必需的。
我已經使用Doctrine自動生成了我的實體。 在我的玩家實體中,我有:
/**
* @var \NV\VolleyScoutBundle\Entity\Users
*
* @ORM\ManyToOne(targetEntity="NV\VolleyScoutBundle\Entity\Users")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
* })
*/
protected $user;
但是我的Users Entity中沒有$player
變量。 我可以用什么方式添加它? 試圖這樣做,但給了我不同的錯誤。 我想做的是在我的注冊表中添加一個玩家表格。
所以在我的RegisterType(= form)中,我想添加->add('player', new PlayerType())
。 但這在我的Users實體中沒有$ player變量是不可能的。
我需要在用戶實體中為$ player設置哪種類型的關系?
您必須在用戶實體中添加注釋。
在玩家實體中
@ORM\OneToMany(targetEntity="Players", mappedBy="user")
protected $player;
在用戶實體中:
@ORM\ManyToOne(targetEntity="Users", inversedBy="player")
@ORM\JoinColumn(name="user_id", referendecColumn="UserId")
proteced $user;
這只是一個草稿。 您必須為目標實體編寫完整的名稱空間,如果有錯誤,請更正錯誤。
您可以在此處找到很多設置錯誤: 原則文檔-與關聯一起使用
嘗試對表名使用小寫字母,因為Linux下的MySQL不喜歡大寫字母。 $ player必須是ArrayCollection的實例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.