これはうまくいきます:
$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 で機能しないのはなぜですか?