本文整理汇总了PHP中MUtil_Model_ModelAbstract::setAutoSave方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::setAutoSave方法的具体用法?PHP MUtil_Model_ModelAbstract::setAutoSave怎么用?PHP MUtil_Model_ModelAbstract::setAutoSave使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::setAutoSave方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: apply
/**
*
* @param string $trackingField The field that stores the tracking value
* @param string $trackedField The field whose changing is tracked
* @param string $oldValueField Optional, the field to store a copy of the original value in
*/
public function apply($trackingField, $trackedField, $oldValueField = null)
{
if (null === $oldValueField) {
// Defautl name
$oldValueField = self::OLD_FIELD_PREFIX . $trackedField;
// Check if a fields already existed
if (method_exists($this->_model, 'getKeyCopyName')) {
$copyName = $this->_model->getKeyCopyName($trackedField);
if ($this->_model->has($copyName)) {
$oldValueField = $copyName;
}
}
}
if (!$this->_model->has($oldValueField)) {
$this->_model->set($oldValueField, 'elementClass', 'Hidden', __CLASS__, $trackedField);
$this->_model->setOnLoad($oldValueField, array($this, 'loadOldValue'));
}
if (!$this->_model->has($trackingField)) {
// Only load the original value and ste the original result when it was not already in the model
$this->_model->setAutoSave($trackingField);
// $this->_model->setOnLoad($trackingField, $this->_unchangedValue);
}
$this->_model->set($trackingField, __CLASS__, array($trackedField, $oldValueField));
$this->_model->setOnSave($trackingField, array($this, 'saveValue'));
// Store the extra hidden fields needed
$hiddenFields = $this->_model->getMeta(self::HIDDEN_FIELDS, array());
$hiddenFields[] = $oldValueField;
$this->_model->setMeta(self::HIDDEN_FIELDS, $hiddenFields);
// Make sure the fields are in the result set
$this->_model->get($trackedField);
$this->_model->get($trackingField);
$this->_model->get($oldValueField);
}