2 つの OneToMany 関係を含むクラスがあります。これがSQLスキーマです
ここにさまざまなクラスがあります。
映画
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="movies")
* @property bigint $id
* @property date $date
* @property int $revision
* @property string $original_title
* @property string $thumbnail
* @property string $plot
*/
class Movie {
/**
* @ORM\Id
* @ORM\Column(type="bigint");
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="date")
*/
protected $date;
/**
* @ORM\Column
* @ORM\Column(type="integer");
*/
protected $revision;
/**
* @ORM\Column(type="string")
*/
protected $original_title;
/**
* @ORM\Column(type="string")
*/
protected $thumbnail;
/**
* @ORM\Column(type="string")
*/
protected $plot;
/**
* @ORM\OneToMany(targetEntity="Exhibition", mappedBy="movie", cascade={"ALL"})
*/
protected $exhibitions;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="movie", cascade={"ALL"})
*/
protected $categories;
}
展示
/**
* @ORM\Entity
* @ORM\Table(name="exhibitions")
* @property bigint $id
* @property string $title
* @property string $type
*/
class Exhibition
{
/**
* @ORM\Id
* @ORM\Column(type="bigint");
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $title;
/**
* @ORM\Column(type="string")
*/
protected $type;
/**
* @ORM\OneToMany(targetEntity="Schedule", mappedBy="exhibition", cascade={"ALL"})
*/
protected $schedules;
/** @ORM\ManyToOne(targetEntity="Movie", inversedBy="exhibitions")
* @ORM\JoinColumn(name="movie", referencedColumnName="id", onDelete="CASCADE")
*/
private $movie;
/** @ORM\ManyToOne(targetEntity="Cinema", inversedBy="exhibitions")
* @ORM\JoinColumn(name="cinema", referencedColumnName="name", onDelete="CASCADE")
*/
private $where;
}
カテゴリー
/**
* @ORM\Entity
* @ORM\Table(name="categories")
* @property string $name
*/
class Category {
/**
* @ORM\Id
* @ORM\Column(type="id")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Movie", inversedBy="categories")
* @ORM\JoinColumn(name="movie", referencedColumnName="id", onDelete="CASCADE")
*/
protected $movie;
}
ご覧のとおり、展覧会とカテゴリはどちらもクラス Movie 内で OneToMany/ManyToOne の関係です。展示品のパーツは正常に動作しますが、ケアゴリーのパーツは動作しません。
たとえば、$movies[0]->categories を使用しようとすると、内部サーバー エラーが発生します。しかし、展示会ではすべてがうまく機能します。
ここで何が欠けていますか?これは私のセットアップに行く方法ですか?
ありがとうございました!