扩展Exisiting Entity以覆盖getter和setter

时间:2017-05-05 06:21:57

标签: symfony doctrine

我想覆盖现有的Entity的getter和setter。有可能这样做吗?

我想为getter和setter添加额外的逻辑。

由于

杰克他

1 个答案:

答案 0 :(得分:0)

为此,您必须创建一个扩展您要覆盖的实体的实体

e.g 我的基础实体

abstract class AbstractEntity
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var \DateTime
     *
     * @ORM\Column(type="datetime")
     * @Gedmo\Timestampable(on="create")
     */
    protected $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(type="datetime", nullable=true)
     * @Gedmo\Timestampable(on="update")
     */
    protected $updatedAt;

    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     *
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;
    }

    /**`enter code here`
     * Get created
     *
     * @return \DateTime
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     *
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }
}

然后在我的实体中

class Group extends BaseEntity
{
    public function __construct()
    {
        $this->children = [];
        $this->users = [];
        $this->accounts = [];
        $this->isActive = true;
    }

     /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     *
     */
    public function setCreatedAt($createdAt)
    {
        parent::setCreatedAt($createdAt); // 
        TODO: Override the implementation
    }

}
希望它会有所帮助