SeUserProgress和SeUser。 SeUserProgress表为每个用户保留多个条目。这通过以下两个映射来表示。
类:SeUserProgress
/**
* @ORM\ManyToOne(targetEntity="SeUser", inversedBy="progress")
* @ORM\Column(name="user_id", type="integer", nullable=true)
*/
private $user;
类:SeUser
/**
* @ORM\OneToMany(targetEntity="SeUserProgress", mappedBy="user")
*/
private $progress;
但是我不断收到错误消息
The association PROJECT\ThisBundle\Entity\SeUser#progress refers to the owning side field PROJECT\ThisBundle\Entity\SeUserProgress#user which is not defined as association.
The association PROJECT\ThisBundle\Entity\SeUser#progress refers to the owning side field PROJECT\ThisBundle\Entity\SeUserProgress#user which does not exist.
我甚至可以通过下面的代码调用progress属性(虽然它会返回所有用户的所有进度)。
$user->getProgress()
关于为什么Doctrine没有识别映射属性的任何建议将不胜感激。
答案 0 :(得分:12)
将代码从@ORM \ Column更改为@ORM \ JoinColumn:
/**
* @ORM\ManyToOne(targetEntity="SeUser", inversedBy="progress")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;