колонка. Затем я изменил аннотации, чтобы отразить новое имя ключа, и оно сразу сработало. Спасибо за вашу помощь!
fony 3 с Doctrine я пытаюсь установить однонаправленное отношение один к одному, когда обе таблицы совместно используют один и тот же первичный ключ. Для этого я пытаюсь повторить пример наКартографирование ассоциации доктрин стр.
Тем не менее, документация uni-to-one универа не имеет примеров сеттеров и геттеров - и также нет определения поля id на целевом объекте. Поэтому я попытался поэкспериментировать вокруг себя.
Это мои сущности:
class Country
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="MySubEntity", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="id", referencedColumnName="id", nullable=true)
*/
private $mysubentity;
[...]
/**
* @return MySubEntity
*/
public function getMySubEntity()
{
return $this->mysubentity;
}
/**
* @param MySubEntity $mysubentity
*/
public function setMySubEntity($mysubentity)
{
$this->mysubentity = $mysubentity;
}
}
class MySubEntity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
[..]
/**
* Set id
*
* @param $id
*
* @return MySubEntity
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
}
Когда я сохраняю статус страны, я получаюIntegrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
, При проверке данных я вижу, что Doctrine попыталась установить для идентификатора MySubEntity значение 0.
Кто-нибудь знает, что мне нужно сделать, чтобы поле MySubEntity $ id автоматически заполнялось из объекта Country?