2017-02-14 14 views
0

シナリオでは、例を挙げて説明するのは非常に簡単です:私はおそらく回避策を(使用するつもりだDoctrine2でオブジェクトを自己削除する方法はありますか?

public function setValue($value) 
{ 
    if ($value == 0) { 
      // DELETE ME 
    } 

    return $this; 
} 

すなわち:setValueへの呼び出し後にオブジェクトを削除するが、私は、この事業をカプセル化したいのですがロジック内でのロジック)

答えて

2

これを実現するには、エンティティ内に存在しないEntityManagerにアクセスする必要があります(多くの例のうちの1つがthis example of how to get the Manager within an entity anwayを参照しているのと同じ理由で、非常に悪い習慣です) 。

私はDoctrine event systemを使用することをお勧めする他のものから離しておくためにあなたの「回避策」に従うことをお勧めしますが、それはあなたの個人的な味によって異なります。

+0

ええと...私は醜い方法(あなたが言及している悪い練習)に行きたくないです...それはオブジェクト自体に "削除される"マークを幾分持たせるといいでしょう内部から設定します... – Muc

+0

これはリスナーで簡単に実現でき、イベントシステムへの私のリンクを確認してください – LBA

関連する問題