🤦
【Laravel】日付(timestamp)をformatで成形しようとすると call to a member fun
当方、初心者かつ初投稿につきお手柔らかにお願いします。自分がLaravelをいじっている際にハマった部分について共有します。
また以下の記事を参考にしました。先にこちらの記事を見ていただいてもいいかもしれません。
やりたいこと
- Laravel(6.X系)でcreated_atなどのtimestampを独自のフォーマットに成形する。
このような場合、表示するbladeファイル側で以下のような実装をすると任意のtimestampを成形することができます。
{{$item->created_at->format('m')}}
またモデル側では変数datesにtimestampを追加します。
HogeModel.php
class MonthlyReport extends Model
{
protected $dates = ['created_at', 'updated_at',];
}
それでも動かないとき
Controllerで何を用いてデータを取得しているかを確認してみてください。
HogeController.php
public function index()
{
$items = DB::table('Hoges')->get(); //DBクラスを使用
return view('index', ['items' => $items]);
}
DBクラスだとtimestampはStringとして取得されるようです。このような場合、Eloquent ORMを使ってください。
HogeController.php
public function index()
{
$items = HogeModel::all(); //Eloquent ORMを使用
return view('index', ['items' => $items]);
}
入門書をかいつまんでやってたら時間的に遠回りしちゃいましたね、、、
Discussion