0

我需要在一个人/工人的出生日期上加上 60 年,这个人存储在数据库中,我有以下代码来定义这个人以及 getter 和 setter:

/**
 * @ORM\Entity
 * @ORM\Table(name="Worker")
 * @ORM\Entity(repositoryClass="Osd\RetireBundle\Entity\WorkerRepository")
 */
class Worker
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $idWorker;

/**
 * @ORM\Column(type="string", length=20)
 */
private $omang;

/**
 * @ORM\Column(type="string", length=100)
 */
private $workerTitle;


/**
 * @ORM\Column(type="string", length=100)
 */
private $workerName;

/**
 * @ORM\Column(type="string", length=100)
 */
private $workerSurname;

/**
 * @ORM\Column(type="date")
 */
private $birthDay;

/**
 * @ORM\Column(type="date")
 */
private $dateOfEmployment;

在这个人/工人内部,我真的不知道在那里这样做是否正确,但我试图创建一个这样的方法:

    public function getRetireDate (){
   if($this->getBirthDay()) 
       return $retireYear = $this->getBirthDay()->add(new DateInterval('P60Y'));
}

我真的不知道在哪里添加方法?,但现在在工作人员内部(我是 symfony 的新手)。但是当我调用它时,它会给我这个错误:

FatalErrorException: Error: Class 'Osd\RetireBundle\Entity\DateInterval' not found in /var/www/Org/src/Osd/RetireBundle/Entity/Worker.php line 202

任何已经完成或知道如何以及在何处实现此功能的人?提前致以问候和感谢。

4

2 回答 2

1

我想我已经解决了这个问题,你的回答@david 真的很有帮助;现在我的方法是这样的:

public function getRetireYear (){
       return $this->retireYear = $this->getBirthDay()->add(new \DateInterval('P60Y'));
}

我在 Worker 中有一个名为 $retireYear 的私有变量。而已。它工作得很好。谢谢你。

于 2013-10-03T08:24:31.703 回答
-1

getRetireDate()功能在Worker实体中。发生的错误可能是您没有DateInterval实体,或者您忘记将DateInterval实体包含到您的Worker实体中。

于 2013-10-03T07:47:14.877 回答