У меня проблема с отношением OneToMany, у меня есть пользователь, который может пожертвовать кровь, чтобы у него было много доноров крови, мое приложение работает нормально, но в моем профилировщике у меня есть 2 ошибки.Проблема с OneToMany Doctrine Symfony2
от пользователей Entity:
The association AppBundle\Entity\Users#userDonation refers to the owning side field AppBundle\Entity\UserDonates#id which is not defined as association, but as field.
The association AppBundle\Entity\Users#userDonation refers to the owning side field AppBundle\Entity\UserDonates#id which does not exist.
и от UserDonates:
The mappings AppBundle\Entity\UserDonates#userId and AppBundle\Entity\Users#userDonation are inconsistent with each other.
Вот мои объекты:
UserDonates:
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Users", inversedBy="userDonation")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $userId;
/**
* @var string
*
* @ORM\Column(name="place", type="string", length=255)
*/
private $place;
/**
* @var date
* @ORM\Column(name="donation_date", type="date")
*/
private $donation_date;
/**
* @var string
* @ORM\Column(name="donation_type", type="string", length=255)
*/
private $donation_type;
/**
* @var integer
* @ORM\Column(name="blod_donated", type="integer")
*/
private $blood_donated;
пользователей:
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="UserDonates", mappedBy="id", cascade={"persist","remove"})
*/
protected $userDonation;
/**
* @ORM\OneToOne(targetEntity="UserInfo", cascade={"persist","remove"})
*/
private $profil;
//__construct() from FOSUserBundle
public function __construct(){
parent::__construct();
}
Сущность пользователя также относится к UserInfo с отношением OneToOne.
Это помогло, большое спасибо, я буду иметь в виду изменить его для пользователя, поэтому сопоставленные и инвертированные значения атрибутов являются полями класса сущностей? – Syeth
Да, атрибуты 'mappedBy' и' inversedBy' относятся к члену каждого связанного объекта, и они будут использоваться для их обработки соответственно (извлечения/создания/редактирования/удаления) через геттеры и сеттеры. @helmbert Спасибо за вашу работу – chalasr