laravel mongo db получает данные о времени как о дате в paginate - PullRequest
0 голосов
/ 28 октября 2018

когда я хочу получить модель для встраивания, API отвечает публиковать неправильный формат даты для модели встраивания и использовать protected $dates = ['updated_at','created_at']; в моей модели трафика, но не работает, и ответ по-прежнему отправляется с неправильным форматом даты и идентификатора

примечание: когда я использую get() вместо simplePaginate() или paginate() построитель запросов отправил правильный формат JSON !!!!!

дБ: enter image description here

Ответ API paginate:

{
"current_page": 1,
"data": [

            {
                "lat": 59.56555555455,
                "lon": 35.54598994564,
                "type": "manual",
                "updated_at": {
                    "$date": {
                        "$numberLong": "1540712586000"
                    }
                },
                "created_at": {
                    "$date": {
                        "$numberLong": "1540712586000"
                    }
                },
                "_id": {
                    "$oid": "5bd5688a6925020c34006773"
                }
            }//.....
      ]
    }

Ответ API get ():

[
{
    "lat": 59.56555555455,
    "lon": 35.54598994564,
    "type": "manual",
    "updated_at": "2018-10-28 07:43:06",
    "created_at": "2018-10-28 07:43:06",
    "_id": "5bd5688a6925020c34006773"
},
{
    "lat": 59.56555555455,
    "lon": 35.54598994567,
    "type": "system",
    "updated_at": "2018-10-28 07:43:06",
    "created_at": "2018-10-28 07:43:06",
    "_id": "5bd5688a6925020c34006774"
}/...
]

код

     $userTrafic = Auth::user()->userTraffic()->firstOrFail();
     if ($userTrafic) {
       return   $userTrafic->traffics()->orderBy('updated_at', 'desc')->simplePaginate(20); //or get()
    }
    else  return response(['status' => false, 'message' => 'traffic\'s user not found'], 404);

1 Ответ

0 голосов
/ 29 октября 2018

просто измените библиотеку: Jenssegers \ Mongodb \ Relations \ EmbedsMany.php

добавьте $sliced = $this->toCollection($sliced); в строку 294 (перед возвратом) в методе paginate(), теперь вы можете получить такой результат:

{
"current_page": 2,
"data": [
    {
        "lat": 59.56555555455,
        "lon": 35.54598994564,
        "type": "system",
        "updated_at": "2018-10-28 08:12:36",
        "created_at": "2018-10-28 08:12:36",
        "_id": "5bd56f746925020c34006778"
    },
    {
        "lat": 59.56555555455,
        "lon": 35.54598994564,
        "type": "manual",
        "updated_at": "2018-10-28 08:13:55",
        "created_at": "2018-10-28 08:13:55",
        "_id": "5bd56fc36925020c34006779"
    },
    {
        "lat": 59.56555555455,
        "lon": 35.54598994567,
        "type": "system",
        "updated_at": "2018-10-28 08:13:55",
        "created_at": "2018-10-28 08:13:55",
        "_id": "5bd56fc36925020c3400677a"
    },
    {
        "lat": 59.56555555455,
        "lon": 35.54598994564,
        "type": "system",
        "updated_at": "2018-10-28 08:13:55",
        "created_at": "2018-10-28 08:13:55",
        "_id": "5bd56fc36925020c3400677b"
    },
    {
        "lat": 59.56555555455,
        "lon": 35.54598994564,
        "type": "manual",
        "updated_at": "2018-10-28 10:39:46",
        "created_at": "2018-10-28 10:39:46",
        "_id": "5bd591f26925020c3400677d"
    }
],
"first_page_url": "**********traffic/list?page=1",
"from": 6,
"last_page": 3,
"last_page_url": "**********traffic/list?page=3",
"next_page_url": "**********traffic/list?page=3",
"path": "**********traffic/list",
"per_page": "5",
"prev_page_url": "**********traffic/list?page=1",
"to": 10,
"total": 12
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...