📔

Laravel Call to a member function format() on string のエラー解決

2022/05/30に公開

はじめに

基本的なエラー文の解説です。

エラー発生事

$date = "2021-06-01";

Shop::where('date', $date->format('Y-m-d'));
}

エラー発生

Call to a member function format() on string

原因

エラー内容は、
「ストリング($date)において、メンバー関数のformat()を呼んでいるよ」
ということ。

仰る通り、変数の$dateはストリング型であって、format()なんていう関数を持っていない。
当たり前ですね。

そもそも、$date->format('Y-m-d')で何がしたいのかというと、
Dateクラスの日にちを、「2022-06-01」の用に変換したい、ということ。
もう、変数の段階でできている。。

解決法

format()を使わず、変数$dateでShopテーブルの中のdateカラムのデータを見つける。

$date = "2021-06-01";

Shop::where('date', $date);
}

さいごに

以上、基本的なミスでした。
元々あるロジックを別で転用しようとした際に、変数の中身が違うことを確認していれば一発でわかるエラーでした。

Discussion