【Laravel】直前のページにリダイレクトさせるback()について

Laravel
スポンサーリンク

今回はLaravelの「back()」についての記事です。

Laravelにはリダイレクト処理としてredirectヘルパというものが用意されています。

redirectヘルパを使うとリダイレクト処理をすることができますが、その中で直前に開いたページに戻る処理も用意されているのでそれを紹介していきます。

スポンサーリンク

Laravelのリダイレクト処理redirect()について

まずリダイレクト処理の基本は以下のような形です。

return redirect('/test/redirect');

redirect()」の引数に相対パスを指定することでそのページへリダイレクトされるようになります。

もちろん別のサイトにリダイレクトさせたい場合は以下のようにすることで可能です。

return redirect('https://test.com');

以下記事でリダイレクト処理についてもう少し詳しく解説していますので参考にしてみてください。

Laravelでリダイレクトする方法・実際のコードを紹介

スポンサーリンク

直前のページに戻る処理back()

続いて本題の「back()」についてです。

基本的な書き方は以下になります。

return back();

これで直前のページに戻ることになります。

利用するケースは、コントローラー内で何かの条件で次のページに遷移させない時に使うかなと思います。

直前のinputの情報を保持したい場合

このback()の処理は、フォームの処理などに使う場合が多いです。

その際にback()だけだと、フォームに入力していたデータは消えてしまいます。

それを回避するには以下のように書きます。

return back()->withInput();

こうすることで直前で入力されていた情報が保持されたまま直前のページへリダイレクトされます。

セッションにデータを渡して直前のページに戻すことも可能

直前のページにセッションとしてデータを渡すこともできます。

return back()->with('data', 'セッションデータです');

こうすることでblade側でsessionとして使うことができるようになります。

以下がsessionのデータ存在チェックをしてそのまま表示させている例です。

@if (session('data'))
  {{ session('data') }}
@endif

//ファサードで存在チェックする場合
@if (Session::has('data'))
  {{ session('data') }}
@endif

存在チェックをしていないとセッションがない場合にエラーになるので注意が必要です。

コントローラー内の処理でユーザーの入力内容によっては次の処理に進めさせないようにすることがあるのでその場合は「back()」を使いましょう。

IT知識の習得にはUdemyがおすすめ

IT知識の基礎を効率よく学習するためにおすすめするのがUdemyです。

Udemyは動画で学ぶオンライン教材です。

プログラミングスクールは高額で手が出せない、特定の範囲だけ集中的に学びたいという方には特におすすめです。

動画教材なので自分のペースで進められるのもUdemyの良いところです。

私も実際にUdemyを使って基礎知識を学びました。

気になった方は以下のリンクから教材を見てみてください。

Udemyホームページ


タイトルとURLをコピーしました