【问题标题】:Accessing the username of a user being edited from the model in CakePHP从 CakePHP 的模型中访问正在编辑的用户的用户名
【发布时间】:2014-04-06 20:02:36
【问题描述】:

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

我在我的 Cake 2.4 应用程序中使用 Miles Johnson 出色的用户图片文件上传器,在行为的actsAs 配置中使用回调来确定文件将保存在的名称:

'nameCallback' => 'getUserName',

调用以下函数:

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

当用户编辑自己的图片时,这很有效,但当 admin 编辑该用户时,这一切都崩溃了:回调返回管理员的用户名,而不是用户的用户名。

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

【问题讨论】:

  • 使用照片表和用户表详细信息更新您的问题...
  • 我更新了问题!
  • 我了解您在尝试什么...但是如果没有更多详细信息,很难做出解决方案...我要求提供表详细信息,例如用户表具有列 ID、用户名等.....现在, 好主意是用Controller action 和view 文件更新你的问题,还有关于tables 你有保存照片url。

标签: php cakephp model


【解决方案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 以获取有关基于角色的身份验证的示例

【讨论】:

  • 这与我已经使用的功能相同:AuthComponent::user('username'); 返回当前登录用户的用户名。我试图弄清楚如何让回调返回正在编辑的用户的用户名,他可能不是正在编辑的用户。
猜你喜欢
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
相关资源
最近更新 更多