Php $this->;认证->;用户();仅id而不是整个数组

Php $this->;认证->;用户();仅id而不是整个数组,php,cakephp,cakephp-2.4,Php,Cakephp,Cakephp 2.4,我正在努力使用CakePHP2.x中的auth组件 书上说(最后一项在底部) 如果参数为null,则返回所有用户数据 "$key (string) – The user data key you want to fetch. If null, all user data will be returned." 但是如果我呼出$u $u = $this->Auth->user(); 然后仅显示用户id。我期待整个用户阵列。有什么想法吗 $this->Auth->use

我正在努力使用CakePHP2.x中的auth组件 书上说(最后一项在底部)

如果参数为null,则返回所有用户数据

"$key (string) – The user data key you want to fetch. 
If null, all user data will be returned."
但是如果我呼出
$u

$u = $this->Auth->user();
然后仅显示用户id。我期待整个用户阵列。有什么想法吗

 $this->Auth->user();
从用户表返回数据,您应该使用

 $id= $this->Auth->user('id');
取身份证

$this->Auth->user();
返回值是数组,所以如果您只想打印整个内容进行调试,请尝试

$u = $this->Auth->user();
var_dump($u);


$u=$this->Auth->user()

返回关联数组,通过表中的键访问字段,例如

echo $u['username']; 
echo $u['email'];
$u=$this->Auth->user()

而不是下面的尝试

vardump($u); or print_r($u);
如果这对你有帮助的话,我现在就告诉你

谢谢

正如评论中预期的那样,我的登录脚本是错误的。由于某种原因,我将数组存储得太平了登录代码错误。我修复了登录代码(分别是从scatch编写的,现在一切正常)。 谢谢您的回复。试试下面的代码。。。。。。。。。。
pr($this->Auth->user());

var_dump($this->Auth->user())是什么意思?你是说像
$u=$this->Auth
?var_dump($this->Auth->user());表示字符串(2)“21”。这是id,不是数组。所以
user()
返回
id
非数组这本书不正确,您的代码不正确。由于某种原因,您将数组存储得太平。我怀疑您的登录代码是错误的。他想获取所有数据,而不仅仅是
id
。当我执行$this->Auth->user('id')时,我会收到警告(4096):参数1传递给Hash::get()必须是数组类型,字符串给定,在第656行的/home/xxx/lib/Cake/Controller/Component/AuthComponent.php中调用,并定义[CORE/Cake/Utility/Hash.php,第43行],我知道。我说:$this->Auth->user();返回id,而不是书中所述的整个用户数组。您还没有理解我的问题。我知道它应该返回一个关联数组,但它没有!!!再次阅读我的问题…@FishWave查看我的上述评论。修复您的代码-尤其是在登录时。然后它将按预期工作。
echo $u['username']; 
echo $u['email'];
Yes you are trying echo $u;
vardump($u); or print_r($u);