V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wending
V2EX  ›  程序员

Laravel 的模型 toArray () 出错求解?????

  •  
  •   wending · 2017-08-04 01:13:26 +08:00 · 4122 次点击
    这是一个创建于 2456 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Laravel5.4
    模型已经继承自 model
    然后
    $datas = Access_token::all()->toJson();
    会提示一下错误:
    Type error: Argument 1 passed to Illuminate\Database\Eloquent\Model::serializeDate() must implement interface DateTimeInterface, integer given, called in D:\phpStudy\WWW\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php on line 122

    百度谷歌无解,请教各位。
    8 条回复    2017-08-07 21:17:09 +08:00
    g8287694
        1
    g8287694  
       2017-08-04 01:17:30 +08:00
    看下取出来的到底是数组还是 json
    pqee
        2
    pqee  
       2017-08-04 01:32:31 +08:00
    目测某时间字段在数据库里用的是 int,但是 Eloquent 将其识别为了时间,尝试格式化他,结果出错。是不是自定义了 created_at 和 updated_at 的类型?必须要用 timestamp 或者 datetime。
    wending
        3
    wending  
    OP
       2017-08-04 01:39:02 +08:00 via iPhone
    @pqee 是的是的,那怎么解决,他那种格式效率不高啊。
    @g8287694 时,集合,没问题,可能就是改了自动维护时间戳的数据类型。
    wending
        4
    wending  
    OP
       2017-08-04 01:47:55 +08:00
    @pqee 删除 crea 等就行了,但是还是想自己格式化时间戳,不懂有什么解决办法,非常感谢,这个问题又让我熬了一夜。
    pqee
        5
    pqee  
       2017-08-04 01:55:20 +08:00 via Android
    设置 model 属性,$timestamp = false
    lawmil
        6
    lawmil  
       2017-08-04 13:25:37 +08:00
    protected $dateFormat = 'U'; 试试这个
    wending
        7
    wending  
    OP
       2017-08-04 23:45:31 +08:00
    wending
        8
    wending  
    OP
       2017-08-07 21:17:09 +08:00
    @pqee 除了更改数据库类型还有其他什么办法吗,网上说好像定义函数就可以,一直没能解决。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2955 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:12 · PVG 23:12 · LAX 08:12 · JFK 11:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.