从CakePHP中的模型访问正在编辑的用户的用户名

时间:2014-04-06 20:02:37

标签: php cakephp model

从模型中,如何访问CakePHP 2.4中正在编辑的用户的用户名?

我在我的Cake 2.4应用程序中使用Miles Johnson的优秀文件上传器用于userpics,在行为的actsAs配置中使用回调来确定文件将保存在的名称下:

'nameCallback' => 'getUserName',

调用以下函数:

    public function getUserName() {
    return CakeSession::read("Auth.User.username");
}

当用户编辑自己的图片时,这很有效,但是当它是 admin 编辑该用户时它会分开:回调会返回管理员的用户名,而不是用户的用户名。

文件上传程序上传文件并将其保存在ActsAs配置指定的文件名和位置下:在这种情况下,我使用/webroot/img/uploads功能将图像保存在getUserName()下获取文件名的用户名。然后上传者将文件的URL保存在字段image下的用户模型中。

1 个答案:

答案 0 :(得分:1)

如果是用户,您可以使用AuthComponent::user('usernane')获取值。 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

如果您的用户被分配了一个role_id或group_id,或者甚至是一个将其与管理员帐户分开的其他类型,您可以尝试...

if(AuthComponent::user('role_id') != 1){ //1 being the role assigned to the admin
 return AuthComponent::user('username');
}

有关基于角色的身份验证的示例,请参阅http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html