Doctrine 1.2では、所有側でのみコレクションを定義することにより、リレーションの反対側でコレクションを自動的に定義することができました。反対側は、それに関連していたクラスについて知る必要はありません。
Doctrine 2.xで、所有者側で変数とマッピングを作成せずにこれを行うことは可能ですか?
Doctrine 1.2では、所有側でのみコレクションを定義することにより、リレーションの反対側でコレクションを自動的に定義することができました。反対側は、それに関連していたクラスについて知る必要はありません。
Doctrine 2.xで、所有者側で変数とマッピングを作成せずにこれを行うことは可能ですか?
おそらく許可されていますが、私はそれをしません。この例を見てください:
1)カテゴリには多くの製品があります。したがって、最も売れた製品を含むページを取得し、そのカテゴリ名を表示します。製品側でその関係を持っている必要があります。
2)カテゴリは、製品がない場合にのみ削除できるとしましょう。したがって、次のような方法があります。
public function isDeletable()
{
return count($this->getProducts())==0 ;
}
より良い例を作ることができると確信しています、私はそれを素早く汚いものにしました。いつ便利になるかわからないので、常に両方を配置することをお勧めします。また、エンティティの一貫性も保たれます。