我试图在保存期间更新某些字段,但只有当一个字段被更改时,但我不知道如何去做。
更多信息:如果用户在我的模型中对'is_activated'字段进行编辑,那么只有当我的函数'suspendToActive'被调用;否则它应该被忽略。
这是我当前的保存动作:
public function save(Doctrine_Connection $conn = null)
{
if ($this->isNew() && !$this->getExpiresAt())
{
... //
}
elseif ($this->getIsActivated()) // this is where I'm having trouble...
{
suspendToActive();
}
return parent::save($conn);
}
Doctrine中有事件侦听器,因此您应该使用模型的preUpdate()函数并使用调用者数据来检查值是否被更改。
您可以在这里找到详细信息:http://www.doctrine-project.org/projects/orm/1.2/docs/manual/event-listeners/pl#record-listeners