我将学说与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中使用学说查询find
或findAll
时,如何自动触发getDefaultPhoto
方法并填充$defaultPhoto
属性?现在,当我查询find
或整个集合中的findAll
时,defaultPhoto
是CC_6。
是否有事件可以执行此操作或任何其他解决方案?
首先,您不会用getter(getDefaultPhoto
)填充任何东西($defaultPhoto
)。您可以在类构造器上填充defaultPhoto
属性,然后在getDefaultPhoto()
方法上返回$this->defaultPhoto
而不是null
。