我尝试在Doctrine 2.0中设置一对多/多对一实体关联.因为我需要在关联表user_message中有一个字段"read",所以我有3个实体.
user.php的
namespace Console\Entity;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity(repositoryClass="Console\Repository\User")
* @Table(name="user")
*/
class User {
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*/
protected $id;
/**
* @OneToMany(targetEntity="Message", mappedBy="users", cascade={"all"}, orphanRemoval=true)
* @JoinTable(name="user_message",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="message_id", referencedColumnName="id", unique=true)}
* )
*/
protected $messages;
public function __construct(){
$this->messages = new ArrayCollection();
}
public function addMessage(Message $message){
$message->addUser($this);
$this->messages[] = $message;
}
}
Run Code Online (Sandbox Code Playgroud)
Message.php
namespace Console\Entity;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity(repositoryClass="Console\Repository\Message")
* @Table(name="message")
*/
class Message {
/**
* …Run Code Online (Sandbox Code Playgroud)