2015-11-02 44 views
1

我想在symfony中將3個表格彼此鏈接起來。如何在symfony中加入多個表格

我想鏈接電影到多個流派的使用3表。

表: 電影, movietogenre, 流派

我想一個電影ID鏈接到movietogenre ID的流派。 這是我有:

級的電影:

 /** 
     * @var integer 
     * 
     * @ORM\Column(name="id", type="integer") 
     * @ORM\Id 
     * @ORM\GeneratedValue(strategy="AUTO") 
     * @var ArrayCollection 
     * 
     * @ORM\ManyToOne(targetEntity="movietogenre", inversedBy="films") 
     * @ORM\JoinColumn(name="movie_id", referencedColumnName="movie_id") 
     */ 
     private $id; 

類movietogenre

/** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="movie_id", type="integer") 
    * 
    * @var ArrayCollection 
    * 
    * @ORM\OneToMany(targetEntity="films", mappedBy="movietogenre") 
    */ 
    private $movieId; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="genre_id", type="integer") 
    * 
    *@var ArrayCollection 
    * 
    * @ORM\OneToMany(targetEntity="genres", mappedBy="movietogenre") 
    */ 
    private $genreId; 

類體裁:

/** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * 
    * @var ArrayCollection 
    * 
    * @ORM\ManyToOne(targetEntity="movietogenre", inversedBy="genres") 
    * @ORM\JoinColumn(name="genre_id", referencedColumnName="id") 
    */ 
    private $id; 

樹枝:

{% for entity in entities if entity.einddatum|date('Y-m-d') > "now"|date("Y-m-d") %} 
    <div class="movie-item col-md-12 col-lg-12 col-sm-12 col-xs-12"> 
     <div class="poster col-md-2 col-lg-2 col-sm-2 col-xs-0"> 
      <img class="img-responsive" src="{{ entity.filmposter }}" /> 
     </div> 
     <div class="info col-md-10 col-lg-10 col-sm-10 col-xs-12"> 
      <a href="{{ path('films_show', { 'id': entity.id }) }}"><h2>{{ entity.titel }}</h2></a> 
      <p>{{ entity.omschrijving }}</p> 
      <p class="text-muted">{{ entity.id.genre_id.genre }} | speelduur: {{ entity.speelduur|date("H:i:s") }} </p> 
      <a href="{{ path('films_show', { 'id': entity.id }) }}"> Meer informatie </a> 
     </div> 
    </div> 
    {% endfor %} 

我知道這可能真的很糟糕,請糾正我。

感謝進取,

+0

究竟什麼不行?你目前的方法的結果是什麼? – somesoaccount

回答

1

類電影

class Movie { 
    /** 
    * @ManyToMany(targetEntity="Genre", inversedBy="movies") 
    * @JoinTable(name="movietogenre") 
    **/ 
    private $genres; 

    public function __construct() { 
     $this->genres = new \Doctrine\Common\Collections\ArrayCollection(); 
} 

類類型:

class Genre {  
    /** 
    * @ManyToMany(targetEntity="Movie", mappedBy="genres") 
    **/ 
    private $movies; 

    public function __construct() { 
     $this->movies = new \Doctrine\Common\Collections\ArrayCollection(); 
    } 
} 

這是多對多關係的有效建設。在這裏閱讀更多關於它:Doctrine 2 ORM documentation - 5. Association Mapping - 5.9. Many-To-Many, Bidirectional