<?php
namespace project1\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use View;
class IndexController extends Controller
{
public function index()
{
$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
return View::make('pages.dashboard.dashboard',['users' => $users]);
}
}
私のビューでタイムアゴーをエコーすることは可能ですか(pages.dashboard.dashboard)何かのような、
{{ $user->created_at->diffForHumans() }}
のような出力を期待し、
1 min ago
まず、雄弁なモデルを試してください。
$users = App\User::orderBy('created_at','desc')->limit(5)->get();
ビューで
@foreach($users as $user) {{$user->created_at->diffForHumans()}} @endforeach
あなたのケースの条件で
$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
@foreach($users as $user) {{ Carbon\Carbon::parse($user->created_at)->diffForHumans()}} @endforeach
説明
雄弁なモデルは自動的にCarbonにキャストされますインスタンスであり、すべてのメソッドを使用できます
DBクエリの日付(created_at)の場合は解析されないため、手動で解析する必要があります。
多分それはあなたを助けるでしょう
Eloquentのタイムスタンプの優れた半隠し機能は、データベースから文字列を返すだけではなく、PHPのDateTimeライブラリの優れた拡張機能であるCarbonのインスタンスを実際に返すことです。これが意味することは、関数のヒープ(つまり、ヒープ)がモデルのタイムスタンプで直接利用できるということです。 GitHub READMEで何が利用できるかを確認するのも一読の価値がありますが、最もクールなメソッドの1つは、diffForHumans()です。私たちはしばしば必要です。
$user = User::first();
echo $user->created_at->diffForHumans(); // 2 days ago
$user->touch();
echo $user->created_at->diffForHumans(); // a second ago
または
Created_dateがCarbon\Carbonのインスタンスである場合、次のことができます。
$row->created_date->diffForHumans()
それがCarbonのインスタンスでない場合は、次のことができます。
(new Carbon\Carbon($row->created_date))->diffForHumans()
または、モデルの$dates
キャストリストにモデルプロパティを追加します。これにより、アクセスするたびにCarbon
インスタンスにプロパティがキャストされます($user->created_date
など):
class User
{
protected $dates = [
'created_date',
];
}
モデルのcreated_at
がtrue
に設定されている場合、フィールドupdated_at
および$timestamps
がこのキャストリストに自動的に追加されます。また、一時的な削除が有効になっている場合は、deleted_at
が追加されます。
時間の後に->diffForHumans();
と書いてください。 $record->created_date->diffForHumans();
のように