【Laravel】Eloquentでwhere文を使うとデータが取れない場合の対処法

  • 2021年11月20日
  • 2023年5月11日
  • Laravel

LaravelでDBを使う場合、標準搭載であるEloquentを使用することになります。
この際、Where文を使用するとデータが取れないことがあるので、その対処法です。

【Laravel】Eloquentでwhere文を使うとデータが取れない場合の対処法

EloquentでWhere文を使う場合は、他のEloquent記述と同じように以下のように記載します。

use App\Models\モデル名;

$変数名 = モデル名::where(条件);

と言った形で、SQLをかじったことがある場合は、これで行けそうな気がします。
ですが実際には、これはエラー落ちします。
きちんとwhereの条件でデータを抽出したい場合は、もう一手間加える必要があります。
use App\Models\モデル名;

$変数名 = モデル名::where(条件)->get();

Eloquentの場合、取得データについて何か制約を加えた場合は最後にget()を加えます。
このように一手間加えないと、データが取得できません。
このget()に関してはwhere以外でも必要です。
  • 並び順を指定するorder by
  • 取得件数を指定するtake

など、何か制約をつける場合は、このget()を忘れないようにしましょう。