5

SeUserProgress と SeUser。SeUserProgress テーブルには、ユーザーごとに複数のエントリが保持されます。これは、次の 2 つのマッピングによって表されます。

クラス: 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.

以下のコードを使用して進行状況プロパティを呼び出すこともできます (ただし、すべてのユーザーのすべての進行状況が返されます)。

$user->getProgress()

Doctrine がマップされたプロパティを認識しない理由についての提案をいただければ幸いです。

4

1 に答える 1

14

コードを @ORM\Column から @ORM\JoinColumn に変更します。

/**
 * @ORM\ManyToOne(targetEntity="SeUser", inversedBy="progress")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */ 
private $user;
于 2013-11-06T14:56:01.480 に答える