Php 正在尝试在beforefilter()中使用$#U会话[';身份验证&';][';用户';][';id';]

Php 正在尝试在beforefilter()中使用$#U会话[';身份验证&';][';用户';][';id';],php,cakephp,Php,Cakephp,我正在尝试在beforefilter()中使用$\u SESSION['Auth']['User']['id']函数。但我收到了错误信息。 错误消息是->未定义变量:\u会话[APP\APP\u controller.php 这是我的应用程序控制器文件。谢谢 `class AppController extends Controller { var $components = array('Acl', 'Session', 'Auth'); ....

我正在尝试在
beforefilter()中使用
$\u SESSION['Auth']['User']['id']
函数。但我收到了错误信息。 错误消息是->
未定义变量:\u会话[APP\APP\u controller.php
这是我的应用程序控制器文件。谢谢

     `class AppController extends Controller {
         var $components = array('Acl', 'Session', 'Auth');
         ....................................`

使用
$this->Auth->user('id')
,而不是
$\u SESSION
变量。
如果坚持直接从会话中读取,请使用
$this->session->read('Auth.User.id')


$\u SESSION
应该可以访问,但这取决于会话何时开始,以及您是否使用PHP的会话管理。使用Cake的包装器,它们会处理这些细节。

我从
$this->Auth->user('id')获取id;
不是从
$this->SESSION->read('Auth.user.id'))
$this->Session->read('Auth.User.id')
$this->Auth->User('id')
@User有什么区别?这是一样的。Auth组件将其数据存储在会话中的
Auth
键下。我建议您始终使用
Auth->User()
来获取Auth数据。