У меня есть две доктрины (AugustusGame и AugustusBoard), которые содержат отношение OneToOne: каждая игра имеет 1 доску, а каждая доска имеет 1 игру.
AugustusGame:
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="AGORA\Game\AugustusBundle\Entity\AugustusPlayer", mappedBy="game")
*/
private $players;
/**
* @ORM\OneToOne(targetEntity="AGORA\Game\AugustusBundle\Entity\AugustusBoard", mappedBy="game",cascade={"persist"})
*/
private $board;
AugustusBoard:
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\OneToMany(targetEntity="AGORA\Game\AugustusBundle\Entity\AugustusCard", mappedBy="board", cascade={"persist"})
*/
private $deck;
/**
* @ORM\OneToMany(targetEntity="AGORA\Game\AugustusBundle\Entity\AugustusCard", mappedBy="board", cascade={"persist"})
*/
private $objLine;
/**
* @ORM\OneToOne(targetEntity="AGORA\Game\AugustusBundle\Entity\AugustusGame", mappedBy="board", cascade={"persist"})
*/
private $game;
И когда я пытаюсь получить Игру по ее идентификатору, она выдает плохо синтаксический SQL-запрос:
$augGame = $this->manager->getRepository('AugustusBundle:AugustusGame')->find($gameId);
Вроде так:
'SELECT t0.id AS id_1, t10.id AS id_11, t10.tokenBag AS tokenBag_12
FROM augustus_game t0
LEFT JOIN augustus_board t10 ON WHERE t0.id = 16'
Очевидно, что это не хороший способ написать LEFT JOIN, но, поскольку он генерируется Symfony, мне интересно, как это исправить.
У вас есть идеи, что может вызвать это?
Заранее спасибо.