Laravel中所有返回的ID都变成了0

19

我的所有查询中,带有 varchar ID 的返回值都是整数,我遇到了一个问题。

例如,本应返回 C-1451963448-MjL 的查询结果却返回了 0。

我的查询语句:

$transaction = Transaction::with('user')->get();
return response()->json($transaction);

这将返回:

[
  {
    "id": 0,
    "user_id": 8,
    "amount": "56164.00",
    "created_at": "2016-01-05 10:10:48",
    "user": {
      "id": 8,
      "facebook_id": null,
      "first_name": "Alta",
      "last_name": "Keebler",
    }
  },
]

交易ID变成了0。上一次我尝试时,它成功了,但现在每个带有varchar的ID都返回0而不是实际值。

我尝试使用foreach获取查询结果,结果ID是0。 当我检查$transaction时,我也尝试了dd($transaction),它返回了正确的ID。

我应该怎么做才能使它再次工作?

1个回答

63

在您的模型上将$incrementing设置为false。

public $incrementing = false;

casts系统会检查这个设置是否为true,如果是,它将尝试将key字段转换为int。


3
它正在运作!但这只发生在今天。这很奇怪。顺便说一句,非常感谢。 - ssuhat
1
非常感谢您提供的简单答案。 - Erik Larsson
1
非常感谢,你让我的一天变得美好.. :) - Nadeem Shaikh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接