Я испытываю головную боль по этому поводу и не могу найти решение.
У меня есть 2 объекта: Movie.php и Category.php
Я хочу, чтобы в одном фильме было несколькоКатегории и наоборот.Вот почему я выбрал отношения ManyToMany.
Теперь мне интересно ... Что происходит на сайте базы данных?Есть ли промежуточная таблица, которая отображает movie_ids на category_ids?Но это не то, что случилось.На самом деле моей первой попыткой было создание объекта MovieCategory - я сопоставил один фильм нескольким категориям с помощью OneToMany, а в объекте MovieCategory я установил соединение OneToOne, чтобы получить имя категории из моего объекта Category.Но я полагаю, что это не так, как должно работать, не так ли?
Вот мой код того, как, по моему мнению, это должно работать, я действительно ценю любую помощь, которую я могу получить в этом:.php
<?php
/**
* @ORM\Table(name="movies")
* @ORM\HasLifecycleCallbacks()
*/
class Movie
{
public function __construct()
{
$this->categories = new ArrayCollection();
}
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @ORM\Column(type="string") */
protected $moviename;
/**
* @ORM\ManyToMany(targetEntity="Category", mappedBy="movie")
*/
protected $categories;
}
Category.php
<?php
/**
* @ORM\Table(name="categories")
* @ORM\HasLifecycleCallbacks()
*/
class Category
{
public function __construct()
{
$this->movies = new ArrayCollection();
}
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
// ...
/**
* @ORM\ManyToMany(targetEntity="Movie", mappedBy="movie", cascade={"persist"})
*/
protected $movies;
}