0

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 を使用しようとすると、内部サーバー エラーが発生します。しかし、展示会ではすべてがうまく機能します。

ここで何が欠けていますか?これは私のセットアップに行く方法ですか?

ありがとうございました!

4

1 に答える 1