【问题标题】:Mongo date displays as null when querying with Laravel使用 Laravel 查询时,Mongo 日期显示为 null
【发布时间】:2016-08-11 17:37:23
【问题描述】:

在我的一个 Mongo 集合中,我在每个 Document 上都有一个 startedAt 属性,如果我发送 AJAX 请求以直接从 Mongo 获取文档,则日期将作为普通 Date 对象返回,我可以按预期使用它,但是,如果我尝试从 Laravel 查询,我会得到一个没有任何内容的 UTCDateTime 对象,如果我尝试打印 dd 它,我只会打印 null

以下是我发送给 Mongo 的控制器中的查询:

public function player($accountId)
{
    $skip = 0;
    $take = 10;

    if(isset($_GET['skip'])) $skip = (int)$_GET['skip'];
    if(isset($_GET['take'])) $take = (int)$_GET['take'];

    $matches = Match::where(['players' => array('$elemMatch' => array('accountId' => $accountId))])
        ->skip($skip)
        ->take($take)
        ->get();

    return $matches;
}

集合中的所有其他字段都可以在刀片中访问,但startedAt 始终返回null。我在 Mongo Chef 中进行了检查,所有日期都保存为Date,它们的格式都类似于:2016-08-10T00:15:14.251Z。为什么 Laravel 无法处理 mongo 日期,或者我在这里遗漏了一些明显的东西?

【问题讨论】:

    标签: mongodb laravel


    【解决方案1】:

    不确定,但可能值得一看:

    https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

    我很确定这会在 Mongo 中做同样的事情,并且应该与刀片模板配合得很好

    【讨论】:

    • 谢谢,这正是我所需要的 :)
    猜你喜欢
    • 1970-01-01
    • 2016-05-21
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多