我在Doctrine中建立了一个简单的User->Comment关联,简单的OneToMany(一个用户可以写很多评论)。
所有作品都找到了,但我发现了一个奇怪的教义行为。首先一些代码:
用户实体
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User extends EntityAbstract {
/**
* @var int
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue
*/
protected $_id;
/**
* @var \Doctrine\Common\Collections\Collection
* @ORM\OneToMany(targetEntity="Comment", mappedBy="TodayIsASunnyDay")
* ^^^^^^^^^^^^^^^^ WTF
*/
protected $_commentsAuthored;
public function __construct() {
$this->_commentsAuthored =
new \Doctrine\Common\Collections\ArrayCollection();
}
}
评论实体
/**
* @ORM\Entity
* @ORM\Table(name="comments")
*/
class Comment extends EntityAbstract {
/**
* @var int
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue
*/
protected $_id;
/**
* @var User
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*
*/
protected $_author;
}
在用户中,学说需要一个mappedBy属性,因为它是关联的反面。但看起来,我可以写任何我想要的东西作为 value。(我认为正确的值是“user_id”?)
那么,什么时候使用或检查过这个值?