【问题标题】:Laravel Eloquent model duplicate keys in modelLaravel Eloquent 模型在模型中重复键
【发布时间】:2016-01-07 19:44:22
【问题描述】:

我不知道是什么问题,我不记得它是什么时候第一次出现的,现在它没有造成很多问题,但是它浪费了连接,这不是移动通信的最后一点。 问题如下。

这是模型的输出,这样的输出适用于任何模型,我的意思是它将每个关联值与索引复制。

array:1 [
  0 => array:12 [
    "id" => "55"
    0 => "55"
    "user_id" => "199"
    1 => "199"
    "token" => "b7351fb13c5ce06a6f09ef6147c7d7d5"
    2 => "b7351fb13c5ce06a6f09ef6147c7d7d5"
    "expiration_time" => "1452795403"
    3 => "1452795403"
    "scope" => "0"
    4 => "0"
    "last_login_time" => "1452194400"
    5 => "1452194400"
  ]
]

我试图跟随函数调用堆栈并停在

public static function hydrate(array $items, $connection = null)

如上所述,我在这里转储。

我不知道是什么导致了这种行为。

也许有人知道什么会导致这样的问题。 谢谢大家。

编辑

我已经将代码上传到pastebin http://laravel.io/bin/VP435

我根据需要编辑了模型,但它不应该影响这部分。

我现在正在努力寻找“万恶之源”。

hybrate方法被Builder调用

public function getModels($columns = ['*'])

这是对数据库的查询 $results = $this->query->get($columns);

查询如下

"select * from `tokens` where `token` = ? limit 1"

这是正确的请求,没有问题

【问题讨论】:

  • 你会pastebin你的模型的代码吗?你运行的是哪个版本的 Laravel?
  • 我刚刚更新,请看帖子编辑
  • 你粘贴了 Laravel 框架的 Model 类。但是你的模型是怎么调用的,它的代码是什么?

标签: php laravel laravel-5 eloquent lumen


【解决方案1】:

请确保在config/database.php 中您已将fetch 设置为PDO::FETCH_CLASS 而不是PDO::FETCH_BOTH

默认情况下它是PDO::FETCH_CLASS,您似乎以某种方式将其设置为PDO::FETCH_BOTH

如果不是这样,请举例说明如何获取此对象。

【讨论】:

  • 太棒了!我自己刚刚发现 $me->getFetchMode() 返回 null 并将其默认设置为 PDO::FETCH_CLASS ,它在数据库配置文件中丢失了!但比看到你回答并正确地做了一切!感谢您的回答,祝您有愉快的一天!
猜你喜欢
  • 2014-02-05
  • 2015-03-12
  • 2020-06-19
  • 1970-01-01
  • 2016-02-26
  • 2018-06-16
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多