2017-09-07 1 views
0

이 시장에 할당 된 대행사를 선택할 수있는 양식 내에서 만들 수있는 내 문서에 'markets'을 추가하고 싶습니다. 따라서 시장을 구체적으로 선택하지는 않지만 대행사를 선택하면 자동으로 추가됩니다. 이 논리는 효과가 있지만 아직 달성하지 못한 한 가지 : 하나의 시장을위한 여러 에이전시가 있지만 한 번만 시장을 표시하고 싶습니다. 내 foreach 루프는 다음과 같습니다.심포니 배열 컬렉션에서 고유 한 값을 foreach 루프 내의 prepersist에 추가하십시오.

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

시장 당 하나의 대행사 만 선택하면됩니다. 한 시장에서 여러 대행사를 선택하자마자 더 이상 작동하지 않습니다. 시장과 기관이 모두 arraycollections이기 때문에, "unique_array"간단한 "와 in_array"또는이 작동하지

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

:이 문제를 피하기 위해, 나는에 코드를 변경했습니다. 그래서 "contains"는 arraycollections에 사용해야하는 함수라고 생각했습니다. 하지만 분명히 .. 더 이상의 아이디어가 없습니까? :) 기관에 대한 시장은 이미 컬렉션 $ this->을에 존재 판매하는 경우

답변

1

변화 조건 일부 코드, 당신은 확인해야합니다 :

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

너무 감사를, 그것은 완벽하게 작동합니다! – sonja

관련 문제