Zend框架模型中是否有beforeSave或afterSave方法



Zend框架模型中是否存在beforeSave或afterSave方法?

class VendorReject extends Zend_Db_Table
{
protected $_name = 'VendorRejects';
}

您可以覆盖Zend_Db_Table_Row_Abstract的_insert()_postInsert()方法。

因此创建行类,例如:

class Row_VendorReject extends Zend_Db_Table_Row
{
protected function _insert()
{
$rejectionDate = $this->rejection_date;
// do something here
parent::_insert();
}
protected function _postInsert()
{
parent::_postInsert();
// some postprocessing
}
}

然后用新类名填充模型中的_rowClass字段

class VendorReject extends Zend_Db_Table
{
protected $_name = 'VendorRejects';
protected $_rowClass = 'Row_VendorReject';
}

现在,每次对行调用save()时,这些方法也会被调用(在插入/更新之前和之后(。

如果您需要这种带有更新的功能,还有_update()_postUpdate()方法。

另一种简单的方法是覆盖Models插入/更新方法。

保存前示例代码:

class VendorReject extends Zend_Db_Table
{
protected $_name = 'VendorRejects';
// Override parent method
public function insert(array $data)
{
// Add your code here that will execute before insert operation
return parent::insert($data);
}
}

保存后示例代码:

class VendorReject extends Zend_Db_Table
{
protected $_name = 'VendorRejects';
// Override parent method
public function insert(array $data)
{
parent::insert($data);
// Add your code here that will execute after insert operation
return;
}
}

最新更新