来自过滤器关联属性的Symfony实体动态属性

时间:2017-02-08 14:09:48

标签: symfony doctrine entity relationship matching

可能有一个看起来像这个代码的实体,当我想实例化这个实体时,dossierClientActif属性会自动成为dossiersClient属性的过滤器。

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();
    }
}

1 个答案:

答案 0 :(得分: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']