Search

1-N Unidirectional relation with Join Table Doctrine 2 ORM


Description


use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User {
    /**
     * @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue
     * @var int
     */
    private $id;

    /**
     * Many User have Many Phonenumbers.
     * @ORM\ManyToMany(targetEntity="Phonenumber")
     * @ORM\JoinTable(name="users_phonenumbers",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="phonenumber_id", referencedColumnName="id", unique=true)}
     *      )
     */
    private $phonenumbers;

    public function __construct() {
        $this->phonenumbers = new ArrayCollection();
    }

}

/**
 * @ORM\Entity
 * @ORM\Table(name="phonenumber")
 */
class Phonenumber {
    /**
     * @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue
     * @var int
     */
    private $id;
}
Table user

- id: PK, Auto Increment



Table users_phonenumbers

- user_id: PK, FK user(id)

- phonenumber_id: PK, FK phonenumber(id)



Table phonenumber

- id: PK, Auto Increment
SEE ALSO