2017-09-12 16 views
0

が、私は基本的に私は何をすべきか、次のコードSymfonyのarraycollectionロジックから削除されたエントリを削除するには?私のエンティティでのプレフラッシュ関数内

$markets = $this->getMarkets(); 
if(count($this->getAgencies()) > 0){ 
    foreach($this->getAgencies() as $agency) { 
    if(!$this->markets->contains($agency->getMarket())) { 
     $this->addMarket($agency->getMarket()); 
    } 
    } 
} 

を持って、私は代理店に割り当てられ、これらの機関は、さまざまな市場に属します文書を作成します。市場よりも多くの代理店があり、そこに重複市場が欲しくないので、私はif条件を実装しました。今追加は完全にうまく動作します。 しかし、私は自分の書類を編集したいと思っています。たとえば、米国(=市場)と呼ばれる代理店を取り除き、アメリカの他の代理店がその書類に割り当てられていない場合は、その文書から米国を完全に削除します。私はその背後にある論理に立ち往生している。

削除する代理店/マーケットが残りのマーケットに含まれていない場合は削除する必要がありますが、そのマーケットの代理店がまだ残っている場合は、マーケットを削除する必要があります。

マーケットと代理店は、どちらもドキュメントエンティティ内のArrayCollectionであるため、removeMarket関数が存在します。私の場合

答えて

0

、この構造体のドキュメントと - >庁 - >市場

は、プレフラッシュで機関からの新しい配列ます$ this->市場を生成します。

OR

は、メソッドgetMarkets()を作成し、必要なとき機関から市場を返します。

+0

私はすでに、その方法を持っていると言いました。私の最後の段落を見てください: "市場と機関はどちらも私のドキュメントエンティティ内のArrayCollectionですので、removeMarket関数が存在します!" 私は論理に問題があります! – sonja

+0

私はあなたが意味するものを正確に理解していません。 私はpreFlushメソッドを使用しなければならないと考えました。しかし、私は** LOGIC **について不思議です。どのように私の条件やforeachまたは何かが私のように見えるだろうか。市場が取り除かれなければならないかどうかをどうやって確認できるのですか? – sonja

+0

これはドキュメントエンティティのpreFlushにありますか? – Cuchu

関連する問題