我试图在symfony中将3个表相互链接。
我试图使用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;
class 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 :(得分: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();
}
}
这是ManyToMany关系的有效构造。在此处阅读更多相关信息:Doctrine 2 ORM documentation - 5. Association Mapping - 5.9. Many-To-Many, Bidirectional。