AuthComponent :: user('id')没有返回正确的数据

时间:2013-10-21 23:24:26

标签: cakephp cakephp-2.3

在我的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,我无法弄清楚为什么,因为据我在文档中可以看出,这正是它应该被调用的方式

3 个答案:

答案 0 :(得分:1)

我弄清楚了我的问题,因此我感到有些愚蠢,但我想我会在这里添加它以防万一其他人遇到同样的问题。

在我的新闻模型中,我也调用了beforeSave函数,但我忘记了一行,即parent::beforeSave();。我不知道在beforeSave函数中的日期内容是如何工作的,但这解决了我的部分beforeSave函数无法正常工作的问题。

感谢大家对此事的帮助,我们对此表示赞赏。

答案 1 :(得分:0)

为什么不从

中获取您的用户ID

CakeSession :: read('Auth.User.Id)?

答案 2 :(得分:0)

我认为您应该在AppControlle :: beforeFiler()方法而不是AppModel中设置用户ID

$this->data[$this->modelClass]['modified_by'] = $this->Auth->User('id');