最好覆蓋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
如果保存失敗。因此,您只需檢查模型中的返回值並設置正確的重定向消息即可。
但postSave你沒有值,這是之前保存。還是我錯了? – di3sel
感謝您的幫助,但我找到了一個更簡單的解決方案。我在表單中添加了一個隱藏字段,所以現在我可以比較JRequest :: getVar('maxuserold')和$ post ['maxuser']。 – shadylane
@ i3sel當然,你有舊的價值觀,這就是OP所說的,他有舊的,他需要新的比較。 shadylane使用JInput而不是JRequest; JRequest已棄用。 – Elin