人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

Laravel で back URL を持ち回る

● Laravel で back URL を持ち回る

管理画面の編集完了後にリダイレクトするページを複数にしたい時、 戻る URL を次のようにして 持ちまわると便利です。

● _back_url を(1画面だけ有効な)セッションに保存

use Illuminate\Support\Facades\Session;
\Session::flash('_back_url', $request->fullUrl());

● _back_url を経過するコントローラーで(1画面だけ有効なセッションを)保持

use Illuminate\Support\Facades\Session;
if (\Session::has('_back_url')) { \Session::keep('_back_url'); }

● データをUPDATEするコントローラーでもセッションを保持しつつ、リダイレクト

セッションがある時とない時で処理を分けます。

use Illuminate\Support\Facades\Session;
if (\Session::has('_back_url')) { \Session::keep('_back_url'); }
if ( \Session::get('_back_url') ){
    return redirect( \Session::get('_back_url') )->with([ 'message' => 'success !' ]);
}
else {
    return redirect()->route("admin.data.index")->with([ 'message' => 'success !' ]);
}

● 全てのコントローラーに適用したい場合は

httpミドルウェアを使用しましょう。
https://readouble.com/laravel/5.8/ja/middleware.html

No.1455
04/16 10:54

edit