authentication - 在 default.ctp 中显示当前登录用户的最佳方式?

标签 authentication cakephp controller

我正在定制default.ctp文件,我试图在页面顶部显示当前登录的用户名。

app_controller.php ,我有以下几点:

function beforeFilter()
{
    $user = $this->Auth->user();

    if($user != null)
    {
        $this->Session->write('user_name',$user['User']['username']);
    }
}

而在 default.ctp , 我有:
$user = $this->Session->read('Auth.User');

if(!empty($user))
{
    echo 'Hello, ' . $user['user_name'];
}

但是,似乎值 $user_name没有在任何地方设置。

我究竟做错了什么?有没有更好的方法来实现这一点?

更新:我已经按照答案中的描述修改了它,但它仍然不起作用。我收到一个错误:

Undefined index: user_name [APP/views/layouts/default.ctp, line 21]

最佳答案

您也可以直接在 View /布局中使用 SessionHelper

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

关于authentication - 在 default.ctp 中显示当前登录用户的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800242/

相关文章:

php - 取出 PHP Session 以在 Swift 中显示网站

security - 使用多种身份验证方法的 ASP.NET Core

php - Javascript登录,基础知识

php - CakePhp 3 - 保存关联模型失败并以 mysql 错误结束

node.js - 简单错误 : Express 3 -> 4. 移动 Controller 并请求索引 "Route.get() requires callback functions but got a [object Undefined]"

authentication - Nancy 503 错误切换到 OWIN 自主机

php - 在 CakePHP 中调用 bool 值的成员函数 success()

cakephp - 如何将div添加到单选按钮?

AngularJS: Controller 与服务

java - 如何在 Spring Controller 方法中从许多 @RequestParam 参数切换到 @ModelAttribute