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條件。現在添加作品非常好。 但是,當我想編輯我的文檔,例如刪除一個代理機構,讓我們說美國(=市場),並且美國沒有其他代理機構分配給該文檔,我希望美國完全從該文檔中刪除。我堅持這背後的邏輯。
因此,如果待取消的代理/市場沒有包含在剩餘市場中,應該刪除,但是如果還有其他代理商離開該市場,市場應當(當然)不應該被刪除。
市場和代理商都是我的文檔實體內的ArrayCollections,所以removeMarket函數存在!
我告訴過你,我已經有了這個方法。看看我的最後一段:「市場和代理商都是我的文檔實體中的ArrayCollections,所以removeMarket函數存在!」 我有邏輯問題! – sonja
我不完全明白你的意思。 我覺得我必須使用preFlush方法。但我想知道** LOGIC **。所以如果我的條件或foreach或任何我需要的將是什麼樣子。我如何檢查市場是否需要移除? – sonja
好吧,這個邏輯它在文檔實體的preFlush中? – Cuchu