1

これはうまくいきます:

$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 と DB raw var dump の結果は 100% 同じです。

diffForHumans() が db raw で機能しないのはなぜですか?

4

1 に答える 1