2017-02-08 9 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'] 
関連する問題