从模型中,如何访问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
下的用户模型中。
答案 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