【问题标题】:$this->Auth->user(); only id instead whole array$this->Auth->user();只有 id 而不是整个数组
【发布时间】:2014-01-06 17:42:53
【问题描述】:

我正在为 CakePHP 2.x 中的 auth-componentent 苦苦挣扎 这本书说here(底部的最后一个条目)

$this->Auth->user();

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

"$key (string) – The user data key you want to fetch. 
If null, all user data will be returned."

但如果我回显$u

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

然后只显示用户ID。我期望整个用户数组。有什么想法吗?

【问题讨论】:

  • 什么是 var_dump($this->Auth->user());说什么?
  • 你的意思是像$u = $this->Auth
  • var_dump($this->Auth->user());说字符串(2)“21”。是 id,而不是数组。
  • 所以user() 返回id 不是数组
  • 没有书是正确的,你的代码不正确。出于某种原因,您将数组存储得太平。我怀疑您的登录代码有误。

标签: php cakephp cakephp-2.4


【解决方案1】:
$this->Auth->user();

返回值是数组,所以如果你只想打印整个内容进行调试,试试

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

print_r($u);

【讨论】:

  • 我知道。我说: $this->Auth->user();如书中所述,返回 id 而不是整个用户数组。
【解决方案2】:

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

Yes you are trying echo $u;

下面这个试试

vardump($u); or print_r($u);

如果这对你有帮助,请告诉我。

谢谢

【讨论】:

    【解决方案3】:

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

    返回一个关联数组,您可以通过表中的键访问字段,例如

    echo $u['username']; 
    echo $u['email'];
    

    【讨论】:

    • 你还没有理解我的问题。我知道它应该返回一个关联数组,但它不!再次阅读我的问题...
    • @FishWave 见我上面的评论。修复您的代码 - 尤其是在您的登录时。然后它将按预期工作。
    【解决方案4】:

    正如评论中所期望的 Mark (DerEuroMark),我的登录脚本是错误的。出于某种原因,我将数组存储得太平。 登录代码错误。我修复了登录代码(分别是我从 scatch 编写的,现在一切正常。 感谢您的所有回复。

    【讨论】:

      【解决方案5】:

      试试这个代码............ pr($this->Auth->user());

      【讨论】:

        【解决方案6】:
         $this->Auth->user();
        

        从用户表返回数据,你应该使用

         $id= $this->Auth->user('id');
        

        获取id

        【讨论】:

        • 他想获取所有数据,而不仅仅是id
        • 当我做 $this->Auth->user('id') 然后我得到警告(4096):传递给 Hash::get() 的参数 1 必须是数组类型,字符串给定,在第 656 行调用 /home/xxx/lib/Cake/Controller/Component/AuthComponent.php 并定义 [CORE/Cake/Utility/Hash.php,第 43 行]
        猜你喜欢
        • 2013-12-15
        • 1970-01-01
        • 2021-07-23
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-04
        • 2014-12-11
        相关资源
        最近更新 更多