在Joomla保存方法中保存后,有没有办法显示更改的值? 例如,当我编辑“maxuser”字段并保存它时,我想显示旧值和新值。 我通过比较“getVar”和“$ post”来尝试这个,但两个值都是相同的。
function save()
{
...
$maxuser1 = JRequest::getVar('maxuser');
$maxuser2 = $post['maxuser'];
...
if($maxuser1 != $maxuser2) {
$msg = "Not the same ...";
}
...
}
答案 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,它可以访问经过验证的值。