获取在SELECT上填充的非持久性字段



我将学说与Symfony一起使用,我有以下简单实体:

/**
* @ORMTable()
*/
class Ads{
    /**
    * @ORMColumn(name="id", type="integer")
    * @ORMId
    * @ORMGeneratedValue(strategy="AUTO")
    */
    private $id;
    /**
    * @var Photo
    *
    * @ORMOneToMany(targetEntity="AppBundleEntityPhoto", mappedBy="advertisement", cascade={"persist", "remove"})
    *
    */
    private $photos;
    /**
    * @var string
    */
    private $defaultPhoto = null;
    public function __construct()
    {
        $this->photos = new ArrayCollection();
    }
    /**
    * Get id
    *
    * @return int
    */
    public function getId()
    {
        return $this->id;
    }
    /**
     * @return ArrayCollection
     */
    public function getPhotos()
    {
        return $this->photos;
    }
    /**
     * @param ArrayCollection $photos
     * @return $this
     */
    public function setPhotos($photos)
    {
        $this->photos = $photos;
        return $this;
    }
    public function getDefaultPhoto()
    {
        if(count($this->getPhotos()) > 0){
            return $this->getPhotos()[0];
        }
        return null;
    }
}

因此,该实体是一个简单的实体,也有一个非持久字段$defaultPhotos

我的问题是,当我在Symfony中使用学说查询findfindAll时,如何自动触发getDefaultPhoto方法并填充$defaultPhoto属性?现在,当我查询find或整个集合中的findAll时,defaultPhoto是CC_6。

是否有事件可以执行此操作或任何其他解决方案?

首先,您不会用getter(getDefaultPhoto)填充任何东西($defaultPhoto)。您可以在类构造器上填充defaultPhoto属性,然后在getDefaultPhoto()方法上返回$this->defaultPhoto而不是null

相关内容

  • 没有找到相关文章

最新更新