0

私には友達とカテゴリがあります-各友達はカテゴリに属しています。それらがどのように関連しているかは次のとおりです。

カテゴリクラス

/**
 * @ORM\OneToMany(targetEntity="Friend", mappedBy="category", cascade={"remove"})
 * @ORM\OrderBy({"name" = "ASC"})
 */
protected $friends;

友達クラスで:

/**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="friends")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 */
protected $category; 

私が欲しいのは、カテゴリを削除することです。これが発生した場合、このカテゴリに属していた友達は、category=nullになります。これをよりエレガントにする方法はありますか?

ご覧のとおり、試してみましcascade={"remove"}たが、完璧ですが、友達も削除されます。現在のカテゴリからすべての友達を選択し、カテゴリフィールドをnullに設定してから、カテゴリを削除するより良い解決策はありますか?

4

1 に答える 1

2

で定義onDelete@JoinColumn、に設定する必要がありますset null。これに関するドキュメントは次のとおりです

于 2012-09-17T12:13:53.757 に答える