カテゴリー
Linux

【Laravel 5.5】WordPress の DB を使ってお勉強。モデルの日時プロパティを楽に扱えるようにする方法

学んだこと

コード

app/Models/Wp/Post.php

    /**
     * 日付を変形する属性
     *
     * @var array
     */
    protected $dates = [
        'post_date',
    ];

resources/views/admin/posts/index.blade.php

$ git diff resources/views/admin/posts/index.blade.php
diff --git a/resources/views/admin/posts/index.blade.php b/resources/views/admin/posts/index.blade.php
index bfbf29f..dd7ae4a 100644
--- a/resources/views/admin/posts/index.blade.php
+++ b/resources/views/admin/posts/index.blade.php
@@ -31,7 +31,7 @@
           <td>{{ $post->categories->implode('name', ', ') }}</td>
           <td>{{ $post->postTags->implode('name', ', ') }}</td>
           <td>{{ $post->comment_count }}</td>
-          <td>{{ $post->post_date }}</td>
+          <td>{{ $post->post_date->format('Y年m月d日') }}</td>
         </tr>
         @endforeach
       </tbody>
$

モデルで $date プロパティを定義ない場合、ビューでの format メソッドは、 string に対してのメソッドとなり、そんなメソッドは存在しないため、エラーとなります。

気になったこと

属性キャスト日付ミューテタ の使い分けがよくわかりません。

  • 属性キャスト
    • 属性キャストはデータベースから取り出した値をキャストするもので、例えばデータベースに保存するためにモデルにセットした値をキャストするものではない?
    • 属性キャストは、 PHP ネイティブな型へキャストする?
  • 日付ミューテタ
    • 日付ミューテタはデータベースから取り出した値をキャストし、また、例えばデータベースに保存するためにモデルにセットした値もキャストする。
    • 日付ミューテタは Carbon オブジェクトへとキャストする。

おわりに

知っていたことをメモにするだけ、と思っていましたけれども、今回は検証しませんでしたけれども、気になったことも出てきました。

以上です。

コメントを残す