0

In one of my Mongo collections I have a startedAt property on each Document, if I send an AJAX request to get the document directly from Mongo the date comes back as a normal Date object and I can use it as expected, however if I try and query from Laravel, I get a UTCDateTime object that has nothing in it, if I try to print dd it I simply get null printed.

Below is the query in my controller that I send to 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;
}

Every other field in the collection is accessible in blade, but startedAt always returns null. I've inspected in Mongo Chef and all dates are being saved as Date and they are all in a format like: 2016-08-10T00:15:14.251Z. Why is Laravel unable to process the mongo date, or am I missing something blatantly obvious here?

1 Answer 1

2

Not certain but it might be worth having a look at this:

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

I'm pretty sure this will do the same sort of thing in Mongo and should play nice with blade templates

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, this was exactly what I needed :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.