2017-09-07 85 views
0

我想在我的文檔中添加「市場」,這可以在表單中創建,您可以選擇分配給這些市場的代理機構。所以你沒有專門選擇市場,但是他們是通過選擇代理機構自動添加的。 這背後的邏輯正在工作,但有一件事我還沒有實現: 有一個市場的幾家代理機構,但我只希望市場顯示一次。我的foreach循環看起來是這樣的:symfony在prepersist的foreach循環中添加來自數組集合的唯一值

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

這是行之有效的,只要我每個市場只選擇一個代理商。只要我爲一個市場選擇了幾家代理機構,它就不再工作了。要避免這種情況,我改變了代碼:

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

由於市場和機構都arraycollections,一個簡單的「in_Array」或「unique_array」是行不通的。所以我認爲「包含」是我應該用於arraycollections的函數。但顯然它不是.. 有沒有進一步的想法? :)

回答

1

變化情況部分的代碼,你應該檢查是否市場機構已經存在於$這個 - >銷售類別:

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

太感謝你了,它完美的作品! – sonja

相關問題