php - 有没有一种简单的方法可以从 CakePHP 的 View 中获取 AuthComponent 用户数据?

标签 php authentication cakephp

根据蛋糕书section on the Auth component ,我可以使用以下用户 Controller 实现简单的身份验证:

class UsersController extends AppController {

    var $name = 'Users';    
    var $components = array('Auth'); // Not necessary if declared in your app controller

    /**
     *  The AuthComponent provides the needed functionality
     *  for login, so you can leave this function blank.
     */
    function login() {
    }

    function logout() {
        $this->redirect($this->Auth->logout());
    }
}

我希望能够将以下内容纳入我的 View :

<?php
   $username = $auth->user('username');
   echo "Welcome " . $username;
?>

有没有一种简单的方法可以做到这一点,还是我需要覆盖登录功能并将用户名存储到 session 中?

更新

Alexander's answer正是我想要的。但是,我会添加以下内容,以防其他人像我一样感到困惑。

我花了一段时间才明白,如果您更改 Auth 使用的模型(例如,您可能有一个“persons”表而不是“users”),那么您需要使用如下内容:

$persondata = $session->read('Auth.Person');

最佳答案

实际上,这些信息很容易从 session 中获得。您使用 session 助手来获取它。我相信正确的语法是:

$userdata = $session->read('Auth.User');
$username = $session->read('Auth.User.username');

编辑:

对于 CakePHP 2.X 和语法是:

$userdata = $this->session->read('Auth.User');
$username = $this->session->read('Auth.User.username');

关于php - 有没有一种简单的方法可以从 CakePHP 的 View 中获取 AuthComponent 用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929186/

相关文章:

php - 简单的 WordPress 循环结果完全错误并且充满了中断和 <p> 元素

azure - Azure Active Directory B2C 是否有 REST Api?

cakephp 自定义验证规则消息

php - yii javascript 脚本内联

Cakephp 3.0 - 异常 : SQLSTATE[42S02]: Base table or view not found

php - mysql 获取所有其他行如何从同一个表中获得相同的 id

php - 将方法 nsdictionary 发布到 json 对象 iOS objective-c

php - 如何在 PHP 中遍历非英文文件名

linux - 无法通过 ssh 使用无密码登录

node.js - 如何从头开始创建使用 API 进行身份验证的 SAML IDP