Symfony/Doctrine"指的是不存在的拥有方字段" - 但属性存在于课堂中

nmc*_*ree 4 php entity symfony doctrine-orm

SeUserProgress和SeUser.SeUserProgress表为每个用户保留多个条目.这通过以下两个映射表示.

class:SeUserProgress

/**
* @ORM\ManyToOne(targetEntity="SeUser", inversedBy="progress")
* @ORM\Column(name="user_id", type="integer", nullable=true)
*/ 
private $user;
Run Code Online (Sandbox Code Playgroud)

class:SeUser

/**
* @ORM\OneToMany(targetEntity="SeUserProgress", mappedBy="user")
*/ 
private $progress;
Run Code Online (Sandbox Code Playgroud)

但是我不断收到错误消息

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.
Run Code Online (Sandbox Code Playgroud)

我甚至可以通过下面的代码调用progress属性(虽然它返回所有用户的所有进度).

$user->getProgress()
Run Code Online (Sandbox Code Playgroud)

关于为什么Doctrine没有识别映射属性的任何建议将不胜感激.

Ben*_*nny 12

将代码从@ORM\Column更改为@ORM\JoinColumn:

/**
 * @ORM\ManyToOne(targetEntity="SeUser", inversedBy="progress")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */ 
private $user;
Run Code Online (Sandbox Code Playgroud)