【Laravel admin】timestampをフォーマットして表示させたい

Larave-admin

なぜか自分の手元ではドキュメント通りに動作しなかったので記しておきます。

Laravel adminの一覧表示画面で、timestampの日時をフォーマットさせるための表示させたかったのですが、少しはまった経緯と対応法になります。

バージョンは1.8、Laravel自体のバージョンは9.Xになります。

単純な一覧表示をする際は、Gridを使って

$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));

のように書きますが、日時もそれに従って上のように記載すると結果が、

のようになります。

ドキュメントには、Date formatの記載があったので、以下のように書いてみたのですが、

$grid->column('created_at', __('Created at'))->date('Y-m-d');
$grid->column('updated_at', __('Updated at'))->date('Y-m-d');

表示はフォーマットされず、なぜか日付を変更できる機能になってしまいました。

やりたいのはこれじゃないですね

Laravel admin | Column display

該当するModelのclassにuseを追加することで解決しました。

// 該当するModelに記載します

use DefaultDatetimeFormat;

controllerは最初のように記載すればOKで、date関数は不要です

$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));

これで、

狙い通りにフォーマットできました!!

(どこかに記載があるのかもですが)ドキュメントではうまく見つからなかったので、初めてやる方は落とし穴になるかもしれません。参考にしてください。

コメント

タイトルとURLをコピーしました