【问题标题】:CakePHP Acessing full User InformationCakePHP 访问完整的用户信息
【发布时间】:2011-09-27 23:47:48
【问题描述】:

我对 CakePHP 很陌生,我只是想知道是否有人可以帮助我做一些事情。 我有一个用户类和一个图像类。

在我的 users_controller.php 中,我有以下功能

function beforeFilter(){
    $this->userOb = $this->User->find();
}
function beforeRender(){
    $this->set('userOb', $this->userOb);
}

这很好用,我可以在我的视图中查看对象,以及与 Image 类的所有正确关系。

但是这样做会覆盖我的 app_controller.php 中的 beforeFilter() 和 beforeRender() 函数,所以我尝试将此功能移动到我的 app_controller.php 但我收到一个错误(未定义属性:PagesController::$User)

还有,

$this->Auth->user();

似乎没有完整的对象映射

$this->User->find();

返回。

所以,我想我的问题是如何创建一个可在我的所有视图中访问的变量,即它在 app_controller.php 中定义,其中包含当前登录的用户对象及其关系。

谢谢。

【问题讨论】:

  • 你可能想回去接受一些旧的答案,你可能会得到更多的回应

标签: php cakephp authentication


【解决方案1】:

如果问题是您的父方法被子方法覆盖,只需在子方法中调用父方法,如下所示:

function beforeFilter(){
    parent::beforeFilter();
    $this->userOb = $this->User->find();
}
function beforeRender(){
    parent::beforeRender();
    $this->set('userOb', $this->userOb);
}

【讨论】:

    【解决方案2】:

    将您的查找结果放在SessionComponent 中,这样您就不必为每个请求执行查询(并在 beforeRender 中设置变量)。在视图中,您可以使用 SessionHelper 访问它。 $this->Auth->user();只有用户记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2012-06-15
      • 1970-01-01
      相关资源
      最近更新 更多