2017-09-07 5 views
0

これらの市場に割り当てられた代理店を選択できるフォーム内で作成できる「市場」を私の文書に追加したいと思います。したがって、市場を特に選択するのではなく、代理店を選択することによって自動的に追加されます。 これの背後にある論理は働いていますが、まだ達成していないことが1つあります。 市場には複数の代理店がありますが、市場は一度しか表示されません。私のforeachループは次のようになります:symfony foreachループ内の配列コレクションからユニークな値を追加する

if(count($this->getAgencies()) > 0){ 
    foreach($this->getAgencies() as $agency) { 
     $this->addMarket($agency->getMarket()); 
    } 
    } 
} 

これは、市場ごとに1つの代理店を選択する限り、うまくいきます。 1つの市場で複数の代理店を選択するとすぐには機能しません。これを避けるために、私は、コードを変更:市場と機関が両方arraycollectionsなので

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

、シンプルな「in_Array」または「unique_arrayは」機能していません。だから私は "contains"は私がarraycollectionsのために使うべき関数だと思った。しかし明らかにそうではありません。 さらなるアイデアは? :)機関のための市場はすでにコレクションの$ this - >の中に存在して販売している場合

答えて

1

変更条件部のコードは、あなたがチェックする必要があります:

if(!$this->markets->contains($agency->getMarket())) { 
     $this->addMarket($agency->getMarket()); 
} 
+0

はそんなにあなたに感謝し、それが完璧に動作します! – sonja

関連する問題