Symfony1 保存覆盖中/保存前的原则日期

Symfony1 保存覆盖中/保存前的原则日期,symfony1,doctrine,save,Symfony1,Doctrine,Save,我有一个带有日期字段“date_of_birth”(symfony form date)的Doctrine模型,该字段由用户填写,它会按照预期100%保存到db,但是在model save()方法中,我需要在保存之前检索该字段的值。我的问题是,当尝试获取日期值时,如果它是新记录,则返回空字符串;如果它是现有记录,则返回旧值 public function save(Doctrine_Connection $conn = null) { $dob = $this->getDate

我有一个带有日期字段“date_of_birth”(symfony form date)的Doctrine模型,该字段由用户填写,它会按照预期100%保存到db,但是在model save()方法中,我需要在保存之前检索该字段的值。我的问题是,当尝试获取日期值时,如果它是新记录,则返回空字符串;如果它是现有记录,则返回旧值

public function save(Doctrine_Connection $conn = null)
{
      $dob = $this->getDateOfBirth(); // returns empty str if new and old value if existing
      $dob = $this->date_of_birth; //also returns empty str

      return parent::save($conn);
 }

在原则1.2中保存数据之前,如何检索此字段的值您可以覆盖伪事件:

// In your model class
public function preSave($event) {
   $dob = $this->getDateOfBirth();

   //do whatever you need

   parent::preSave($event);
}

通常,条令中的伪事件使用“新”值,但是有getModified()方法,它正是您所需要的

$modifiedFields = $this->getModified(true);
if(isset($modifiedFields['date_of_birth'])) { //index is available only after change
  echo $modifiedFields['date_of_birth']; //old value
}

链接已断开…:/还有,卡洛斯,没有必要对我投反对票,因为条令计划在过去的几年里(现在已经6年半)没有保持他们的联系