⚙️

[Laravel] optionalヘルパの使いどころ

Laravel には optional() というヘルパがある

optional(User::find(1))->name;

のように使うと、User::find(1)null の場合は普通エラーになるところだが null を返してくれるようになる。

三項演算子や null 合体演算子を使うならそれぞれ

  • is_null(User::find(1)) ? null : User::find(1)
  • User::find(1)->name ?? null

となるだろう。こうして比べてみると、optional()を使うとチェーンの中で処理が完結していて読みやすいことがよくわかる。

ただ、値が存在しなかった場合に null 以外の値を返すことができないので、null 以外の値を返したいときは ?? を使う。

User::find(1)->name ?? 'guest'