Joomla 2.5方法save()

时间:2014-03-24 13:45:07

标签: methods joomla save

在Joomla保存方法中保存后,有没有办法显示更改的值? 例如,当我编辑“maxuser”字段并保存它时,我想显示旧值和新值。 我通过比较“getVar”和“$ post”来尝试这个,但两个值都是相同的。

function save()
{

...

$maxuser1 = JRequest::getVar('maxuser');
$maxuser2 = $post['maxuser'];

...
if($maxuser1 != $maxuser2) {
    $msg = "Not the same ...";
}

...

}

2 个答案:

答案 0 :(得分:1)

最好覆盖JTable,而不是模型。下面是示例代码:

public function store($updateNulls = false) {
  $oldTable = JTable::getInstance(TABLE_NAME, INSTANCE_NAME);
  $messages = array();
  if ($oldTable->load($this->id)) {        
    // Now you can compare any values where $oldTable->param is old, and $this->param is new
    // For example
    if ($oldTable->title != $this->title) {
      $messages[] = "Title has changed";
    }
  }

  $result = parent::store($updateNulls);

  if ((count($messages) > 0) && ($result === true)){
    $message = implode("\n", $messages);
    return $message;
  } else {
    return $result;
  }    
}

这将返回消息字符串(如果有),true如果没有消息并保存成功,false如果保存失败。因此,您所要做的就是检查模型中的返回值并设置正确的重定向消息。

答案 1 :(得分:0)

在控制器中,您可以使用postSaveHook,它可以访问经过验证的值。