在我的AppModel中,我有一个beforeSave函数:
public function beforeSave($options = array()) {
if (!empty($this->data[$this->alias]['created'])) {
$this->data[$this->alias]['created'] = date('Y-m-d G:i:s');
$this->data[$this->alias]['modified'] = $this->data[$this->alias]['created'];
} else {
$this->data[$this->alias]['modified'] = date('Y-m-d G:i:s');
}
$this->data[$this->alias]['modified_by'] = AuthComponent::user('id');
return true;
}
这是一个简单的函数,它只记录创建和修改的日期,并将字段modified_by设置为当前登录用户的id。或者至少那是它应该做的,一切都有效,除了获取当前登录用户的id,我无法弄清楚为什么,因为据我在文档中可以看出,这正是它应该被调用的方式
答案 0 :(得分:1)
我弄清楚了我的问题,因此我感到有些愚蠢,但我想我会在这里添加它以防万一其他人遇到同样的问题。
在我的新闻模型中,我也调用了beforeSave函数,但我忘记了一行,即parent::beforeSave();
。我不知道在beforeSave函数中的日期内容是如何工作的,但这解决了我的部分beforeSave函数无法正常工作的问题。
感谢大家对此事的帮助,我们对此表示赞赏。
答案 1 :(得分:0)
为什么不从
中获取您的用户IDCakeSession :: read('Auth.User.Id)?
答案 2 :(得分:0)
我认为您应该在AppControlle :: beforeFiler()方法而不是AppModel中设置用户ID
$this->data[$this->modelClass]['modified_by'] = $this->Auth->User('id');