колонка. Затем я изменил аннотации, чтобы отразить новое имя ключа, и оно сразу сработало. Спасибо за вашу помощь!

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?

Ответы на вопрос(1)

Ваш ответ на вопрос