Я работаю над обновлением продукта с Symfony 2.7 до 4.2 (в настоящее время на 3.4) и застреваю с некоторыми существующими ассоциациями.
- Поле AppBundle \ Entity \ User # currentBillingAgreement находится на стороне-владельце двунаправленного отношения, но указанная ассоциация mappedBy в целевом объекте AppBundle \ Entity \ BillingAgreement # не содержит обязательного атрибута "inversedBy".
- Если ассоциация AppBundle \ Entity \ User # currentBillingAgreement является взаимно-однозначной, то пользователь AppBundle \ Entity \ BillingAgreement # с обратной стороны также должен быть взаимно-однозначным.
Сущность User
имеет следующие ассоциации:
/**
* @var BillingAgreement
* @ORM\OneToOne(
* targetEntity="AppBundle\Entity\BillingAgreement",
* inversedBy="user",
* cascade={"persist"}
* )
* @ORM\JoinColumn(
* name="currentBillingAgreementID",
* referencedColumnName="billingAgreementID"
* )
*/
protected $currentBillingAgreement;
/**
* @var ArrayCollection
* @ORM\OneToMany(
* targetEntity="AppBundle\Entity\BillingAgreement",
* mappedBy="user",
* cascade={"persist"}
* )
* @Serializer\Exclude()
*/
protected $billingAgreements;
и BillingAgreement имеет это:
/**
* @var User
* @ORM\ManyToOne(
* targetEntity="AppBundle\Entity\User",
* inversedBy="billingAgreements"
* )
* @ORM\JoinColumn(
* name="userID",
* referencedColumnName="userID",
* nullable=false
* )
*/
protected $user;
Когда я добавляю сопоставление OneToOne в BillingAgreement::$user
(@ORM\OneToOne(targetEntity="AppBundle\Entity\User", inversedBy="currentBillingAgreement")
), я получаю новую ошибку:
- Поле AppBundle \ Entity \ BillingAgreement # user находится на стороне-владельце двунаправленной связи, но указанная ассоциация mappedBy в целевом объекте AppBundle \ Entity \ User # не содержит обязательного атрибута "inversedBy".
и оригинальные ошибки 2 остаются.