エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】url()->previous()で前のページが取得出来ない時の対応【208日目】

直前に見ていたページの取得方法はこちら

willow710kut.hatenablog.com

こんな時につかう

  1. 対象のページを初めて見た時
  2. 新しいページ、新しいタブで開いた時

この時は、直前に見ていたページが取得出来ない。
その時の対応をどうするか。

別なページをセットする

url()->previous('/error');

これで、取得出来なかった場合には、/errorのURLをセットすることが出来る。

引数ない場合何が起こるの?

元コード。

    public function previous($fallback = false)
    {
        $referrer = $this->request->headers->get('referer');

        $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
        
        if ($url) {
            return $url;
        } elseif ($fallback) {
            return $this->to($fallback);
        } else {
            return $this->to('/');
        }
    }

つまり、取得出来なかった時には、引数のURLをセットする。

引数がなかった時には、ドメインのTOPに飛ばされる。