There are times when you will like to save user activities to get an idea as to who is doing what. You might not want to use a plugin like luggable. Here is a simple way to do it using the beforeSave function.
public function beforeSave($options = Array()) {
if(isset($this->data['Post']['id'])) {
// get user id
$user_id = CakeSession::read('Auth.User.id');
// get applicant edited fields
$activity = '<table class="table table-bordered table-striped"><tr><td>Column</td><td>Value</td></tr>';
foreach($this->data['Post'] as $key => $value){
$activity .='<tr><td>'.Inflector::humanize($key).'</td><td>'.$value.'</td></tr>';
}
$activity .= '<table>';
$this->UserActivity->set([
'user_id' => $user_id,
'activity' => $activity,
'post_id' => $this->data['Post']['id']
]);
if($this->UserActivity->save()) {
}
}
}