2012-07-03 3 views
1

symfony2 및 나뭇 가지를 작업 중입니다.엔티티 집합간에 하나의 필드가 정의되어 있는지 확인하는 방법은 무엇입니까?

내 문제는 다음과 같습니다.

직원이 차량을 소유 할 수 있습니다. 일부 차량은 괜찮을 수 있습니다. 예를 들면.

내 직원 중 차량에 dateFine이 있는지 확인하고 싶습니다. 한 차량에 dateFine이있는 경우 일반 경고를 표시하려고합니다. "경고 : 차량 중 하나에 문제가 없습니다." 이 개 차량은 dateFine이있는 경우, 내가 가진 것, 그 코드 물론 :

{% for vehicle in employee.vehicles %} 
     {% if vehicle.dateFine is defined %} 
      <div> Warning : one of your vehicle has a fine. </div> 
     {% endif %} 
    {% endfor %} 

문제 : 내 employee.html.twig보기에서

, 그 다음처럼 작성할 수 있습니다 2 개의 경고가 있고, 하나만 갖고 싶습니다. 따라서 dateFine이 직원의 모든 차량에 정의되어 있는지 확인하기 만하면되지만 어떻게 해야할지 모르겠습니다.

고마워요

답변

3

이 논리는 나중에 재사용하거나 개체에서 제어 할 수 있기 때문에 논리를 모델로 옮길 것입니다. 이 작업을 수행하는 가장 좋은 방법은 직원 객체에 hasFine를 추가 :

{% if employee.hasFine %} 
    <div> Warning : one of your vehicle has a fine. </div> 
{% endif %} 
:이 기능을 사용할 수있는 템플릿에서

class Employee { 
    public function hasFine() { 
     foreach($this->vehicles AS $vehicle) { 
      if($vehicle->getDateFine() != null) return true; 
     } 

     return false; 
    } 
} 

2

가장 좋은 방법은이 논리를 직원 클래스로 옮기는 것일 수 있습니다. Employee에서 hasVehicleDateFine()이라는 메서드를 만든 다음 루핑과 논리를 수행합니다.

관련 문제