【问题标题】:CakePHP3 get user in default.ctpCakePHP3 在 default.ctp 中获取用户
【发布时间】:2016-04-19 10:06:57
【问题描述】:

我从事 CakePHP 3 项目。我想从 default.ctp 显示登录用户的用户名,所以我尝试了这个:

//in default.ctp   
 $user = $this->Session->read('Auth.User');
    if(!empty($user)) {
        echo 'Hi ', $user['user_name'];
    }

它不起作用,我找到了其他解决方案,它告诉我将当前用户置于 AppController 的会话中,它也不起作用。

// in AppController      
function beforeFilter(){
  $user = $this->Session->read('Auth.User');
  $this->set('username', $user['username']);
}

default.ctp中:

<?=$username?>

我怎样才能做到这一点?

【问题讨论】:

    标签: php cakephp cakephp-3.0


    【解决方案1】:

    访问会话是错误的方法。 CakePHP 中的身份验证系统可以处理用户的不同来源,并且会话不会适用于无状态身份验证系统。

    因此,正确的方法是从抽象的身份验证系统中获取用户,而直接从会话中读取它。如果会话密钥发生变化,会话方法也会搞砸。

    在 AppController 中添加这个:

    public function beforeRender() {
        $this->set('user', $this->Auth->user());
    }
    

    然后访问视图中的 $user 变量。 My plugin 甚至包含a helper 来处理视图中用户数据的常见任务。

    【讨论】:

    • 谢谢这帮助我在我的项目中不仅通过$user
    【解决方案2】:
    <?php   $session = $this->request->session(); // less than 3.5
            // $session = $this->request->getSession(); // 3.5 or more
            $user_data = $session->read('Auth.User');
            if(!empty($user_data)){
                print_r($user_data);
      }?>
    

    试试这个希望对你有帮助..

    【讨论】:

    • 您不应该使用这样的会话来检索授权用户的数据。您应该使用 Auth 组件,如 burzum 的答案所示。避免使用此处显示的 Session 方法!
    【解决方案3】:

    您可能需要包括 -- use Cake\View\Helper\SessionHelper ; // 在应用控制器中

    你得到了正确的sn-p代码--

    // in AppController  , this function being called before every request  
    function beforeFilter(){
      $user = $this->request->session()->read('Auth.User');
      $this->set('username', $user['username']);
    }
    

    显然这些设置值将在您的视图布局文件中可用。

    <?=$username?> or <?php echo $username ;?> // both are same.
    

    你在这里没有得到什么?

    【讨论】:

    • 未定义变量$username
    • 尝试检查您收到的 $user 的值吗?
    • 我尝试调试$user,但似乎没有显示任何内容
    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    相关资源
    最近更新 更多