У меня есть 2 таблицы, как это:ManyToOne отношения + Как использовать в обоих направлениях
Users - UserID - Username - Password - ...
Players
- playerID
- playerName
- ...
- User
Отношение является ManyToOne
(см рисунок) и это не требуется.
Я генерироваться мои объекты автоматически с доктриной. В моем игроке Entity у меня есть:
/**
* @var \NV\VolleyScoutBundle\Entity\Users
*
* @ORM\ManyToOne(targetEntity="NV\VolleyScoutBundle\Entity\Users")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
* })
*/
protected $user;
Но я не имею $player
переменные в моих пользователях Entity. Как я могу добавить это? Пытался сделать это, но дал мне разные ошибки. То, что я пытаюсь сделать, это добавить форму игрока в мою регистрационную форму.
So in my RegisterType (= form) Я хотел бы добавить ->add('player', new PlayerType())
. Но это невозможно без переменной $ player в сущности My Users.
Какое отношение мне нужно установить для $ player в моем объекте Users?
Спасибо! Но когда я делаю: $ user-> getPlayer(), я просто возвращаю объект (Doctrine \ ORM \ PersistentCollection) обратно. – nielsv
Это должно быть нормально. Постоянная коллекция - это как массив с экземплярами Player. Попробуйте цикл foreach: $ players = $ user -> getPlayer(); foreach ($ players as $ player) ... здесь $ player должен быть экземпляром игрока. – Matzach