【问题标题】:Data format issue for related models (Laravel / jenssegers/laravel-mongodb)相关模型的数据格式问题(Laravel / jenssegers/laravel-mongodb)
【发布时间】:2019-08-27 10:06:24
【问题描述】:

这是 laravel-mongodb 包的open bug on Github,但没有响应。也许有人知道解决方案..?

选择单个文档时,日期显示为日期

{
    "_id": "5ca71ce0d542352064004034",
    "title": "General review",
    "status": "active",
    "start_date": "2019-04-05 09:16:16.000000",
    "end_date": "2038-01-19 03:14:07.000000",
    "start_review_date": "2019-04-05 09:16:16.000000",
    "submission_fee": 100,
    "reward": 0,
    "is_general_review_round": true,
    "created_at": "2019-04-05 09:16:16.000000",
    "updated_at": "2019-04-05 09:16:16.000000",
    "proposals": [],
    "demography": null
}

但是在选择为相关对象(嵌套数组)时,我遇到了这个日期转换问题...

{
    "title": "Omnis perspiciatis aut voluptatem dolores vel repudiandae.",
    "start_date": {
        "$date": {
            "$numberLong": "1554542206000"
        }
    },
    "end_date": {
        "$date": {
            "$numberLong": "1556183806000"
        }
    },
    "start_review_date": {
        "$date": {
            "$numberLong": "1555406206000"
        }
    },
    "updated_at": {
        "$date": {
            "$numberLong": "1554455806312"
        }
    },
    "created_at": {
        "$date": {
            "$numberLong": "1554455806312"
        }
    }
}

【问题讨论】:

    标签: laravel mongodb jenssegers-mongodb


    【解决方案1】:

    日期可以从父模型格式化: 如果您的父模型是 User 并且您正在嵌入 UserDetails 您可以通过这种方式投射日期:

    public function userDetails()
    {
        return $this->embedsOne('UserDetails');
    }
    

    protected $dates = ['userDetails.created_at', 'userDetails.updated_at'];

    【讨论】:

    • 这似乎是正确的答案。 $dates 数组定义了哪些元素应该被认为是 MongoDate 类型并在从 DB 读取时转换为 Iso
    猜你喜欢
    • 2017-05-18
    • 2017-06-15
    • 1970-01-01
    • 2014-08-04
    • 2017-05-21
    • 2018-01-16
    • 2016-10-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多