小编mYk*_*kon的帖子

Doctrine 2.0/One-To-Many:多对一

我尝试在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)

php doctrine annotations associations

6
推荐指数
1
解决办法
9871
查看次数

标签 统计

annotations ×1

associations ×1

doctrine ×1

php ×1