Laravel5.5でEloquentのモデルから日付が取れない

エラー Laravel PHP 解決済み

エラー:Call to undefined method DateTime::getTimezone() (View: \index.blade.php)

翻訳:未定義のメソッドを呼び出すDateTime :: getTimezone()(View:\ index.blade.php)

まず値が取れなくなったのはmy_time_dateカラム。

echo $post->my_time_date;

などが動かなくなり、上記のエラーが出るようになった。
 

my_time_dateはテーブルでの型はDATE型になっている。その他Laravel用の時間カラムはdatetime
さっきまで取れていたのに急に取れなくなった。
モデルでの時間の宣言もしている。

    protected $dates = [
        'my_time_date',
        'created_at',
        'updated_at',
        'deleted_at'
    ];

 
created_atも取れなくなっているしupdated_atもダメに。謎。
public $timestamps = false;が必要なのだろうか?つけてみたが変化なし。

    protected $dates = [
        // 'my_time_date',
        'created_at',
        'updated_at',
        'deleted_at'
    ];

なぜかコメントアウトしたら動いた。困った。。
Carbonがエラー吐いてるし、Carbonが原因ぽい。。

composerでまず

composer self-update

そのあとcomposer.jsonのバージョンを変えてみる

        "nesbot/carbon": "1.27.*",

にして

composer update

あとアパッチの再起動
なんでかよくわからないが動いた。
 
動いた時のモデルの記述

    use SoftDeletes;

    protected $dates = array('my_time_date');

 
こっちのコマンドでキャッシュクリアなどは常時行った。
https://error-search.com/error-post/detail/185/Laravel%E3%81%8B%E3%81%A3%E3%81%99%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%8A%E3%81%BE%E3%81%98%E3%81%AA%E3%81%84%E4%B8%80%E5%BC%8F

Laravelおにいさん / 2018-05-21 / 202 / 0
このエントリーをはてなブックマークに追加
関連記事

まだコメントがついていません。

ログイン不要でコメントの投稿ができます。