登録日:
2025-01-27
最終更新日:
2025-04-13
- PHP
- Laravel
- MySQL
Laravel日付フォーマットエラー
Laravel の blade で日付フォーマットを指定した際以下のようなエラーが発生したのでメモとして残しておきます。
エラー内容
以下のようなエラーが発生した場合は、Model に定義を記述を追加し日付変換できるように変更します。
このエラーは、Laravel の blade(view)ファイル内で日付フォーマットしようとした項目が文字列( String )型として定義されていることが原因のエラーです。
その為、日付フォーマットを行いたい項目定義を変更する必要があります。
Call to a member function format() on string
Laravel の Blade 内の記述内容
<span>{{ $dbDatas->upddt->format('Y/m/d/') }}</span>
対処方法
Model 定義で、日付として認識させたい項目を $casts 定義に追記します。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Exsample extends Model
{
use HasFactory;
protected $table = 'exsample';
protected $primaryKey = 'id';
/**
* カラムに関連付ける型
*
* @var array
*/
protected $casts = [
'upddt' => 'datetime',
];
}
Castsの型一覧
- array
- AsStringable::class
- boolean
- collection
- date
- datetime
- immutable_date
- immutable_datetime
- decimal:
- double
- encrypted
- encrypted:array
- encrypted:collection
- encrypted:object
- float
- integer
- object
- real
- string
- timestamp