シンプルな OneToMany (1 人のユーザーが多くのコメントを書くことができる) というシンプルな User->Comment 関連付けを Doctrine でセットアップしました。
すべての作品が見つかりましたが、Doctrine の奇妙な動作を見つけました。最初のいくつかのコード:
ユーザーエンティティ
/**
* @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」だと思いますか?)
では、この値はいつ使用またはチェックされるのでしょうか?