Carbon diffforhuman не работает с DB raw

Этот работает нормально:

$news = NewsFeed::all();

возврат:

{
    "new": [
        {
            "id": "NF_gi042G0493C389rT1z09",
            "user_id": "CUS_G530t786S1GVwlcJ3Nw1",
            "newsfeedable_id": "STA_7F5eJ6587n2523750cZr",
            "newsfeedable_type": "Status",
            "created_at": "2015-03-31 06:01:03",
            "updated_at": "2015-03-31 06:01:03"
        },
        {
            "id": "NF_0k625I8vp9sG22637a80",
            "user_id": "CUS_G530t786S1GVwlcJ3Nw1",
            "newsfeedable_id": "CNT_dF22v8dorG2k143N1288",
            "newsfeedable_type": "Contact",
            "created_at": "2015-03-30 10:04:34",
            "updated_at": "2015-03-30 10:04:34"
        }
    ]
}

==============

Но это:

$news = DB::select( DB::raw(" SELECT * FROM `news_feed` ") );

примечание: запрос mysql в порядке, работает отлично

Мой КОД:

$x = $news->updated_at->diffForHumans();
echo $x;

ОШИБКА:

Вызов функции-члена diffForHumans() для необъекта

Я сделал var_dump, вот результат db raw:

{
      "new": [
            {
                "id": "NF_gi042G0493C389rT1z09",
                "user_id": "CUS_G530t786S1GVwlcJ3Nw1",
                "newsfeedable_id": "STA_7F5eJ6587n2523750cZr",
                "newsfeedable_type": "Status",
                "created_at": "2015-03-31 06:01:03",
                "updated_at": "2015-03-31 06:01:03"
            },
            {
                "id": "NF_0k625I8vp9sG22637a80",
                "user_id": "CUS_G530t786S1GVwlcJ3Nw1",
                "newsfeedable_id": "CNT_dF22v8dorG2k143N1288",
                "newsfeedable_type": "Contact",
                "created_at": "2015-03-30 10:04:34",
                "updated_at": "2015-03-30 10:04:34"
            }
        ]
}

Результат необработанного дампа Eloquent и БД на 100% одинаков.

Почему diffForHumans() не работает с db raw?


person Community    schedule 01.04.2015    source источник
comment
Проверьте этот ответ   -  person Sushant Aryal    schedule 01.04.2015


Ответы (1)


если вы попытаетесь var_dump обновить updated_at, используя красноречивый

var_dump($eloquent_news->updated_at);

{
        "date": "2015-03-31 06:01:03.000000",
        "timezone_type": 3,
        "timezone": "UTC"
    }

Это фактический результат рендеринга updated_at красноречивым, я не знаю, как это сделать в DB::raw. Но, по крайней мере, теперь вы знаете, что происходит.

Вывод:

Eloquent updated_at и DB::raw не на 100% одинаковы.

person Community    schedule 01.04.2015