2017-02-08 6 views
0

이 코드와 비슷한 엔티티를 가질 수 있으며이 엔티티를 인스턴스화하려면 dossierClientActif 속성이 자동으로 dossiersClient 속성의 필터가됩니다.symfony 엔티티 필터 조합 속성의 동적 속성

class Contact { 

    private id; 

    /** 
    * @var \Doctrine\Common\Collections\ArrayCollection 
    */ 
    private $dossiersClient; 

    /** 
    * @var \AppBundle\Entity\DossierClient 
    */ 
    private $dossierClientActif; 

    /** 
    * @return \Doctrine\Common\Collections\ArrayCollection 
    */ 
    public function getDossiersClient() 
    { 
     return $this->dossiersClient; 
    } 

    /** 
    * Add dossierClient 
    * 
    * @param \AppBundle\Entity\DossierClient $dossierClient 
    * 
    * @return Contact 
    */ 
    public function addDossierClient(\AppBundle\Entity\DossierClient $dossierClient) 
    { 
     $this->dossiersClient[] = $dossierClient; 

     return $this; 
    } 

    /** 
    * @return DossierClient 
    */ 
    public function getDossierClientActif() 
    { 
     $criteria = Criteria::create(); 
     $criteria->where(Criteria::expr()->eq('indArchive', 0)); 
     return $this->dossiersClient->matching($criteria)->first(); 
    } 
} 

답변

0

가상 속성이있는 JMS 직렬기를 사용하면 효과적입니다.

AppBundle\Entity\Contact: 
    exclusion_policy: ALL 
    virtual_properties: 
     getDossierClientActif: 
      serialized_name: dossierClientActif 
      groups: ['contact'] 
    properties: 
     id: 
      expose: true 
      groups: ['contact'] 
     dossiersClient: 
      expose: true 
      groups: ['contact']