[PHP][Laravel] リダイレクトバック(redirect()->back())でのURLクエリパラメータ対応

バージョン

Laravel 5.7

概要

前の画面でURLクエリパラメータが指定されており、
その画面にリダイレクト バックした際にクエリパラメータを渡したい。
下記2タイプのどちらかで対応はできたが、単純にredirect()->back()で対応する方法が
見つからなかったので知ってたら教えてください!!

対応方法1

redirect()->back()は諦めて前のURLを取得する。
■Controller

// 前画面のURLを取得
$previousUrl = app('url')->previous();

return redirect()->to($previousUrl.'?'. http_build_query(['id'=>$params['data_id']]))->withInput();

redirect()->to()で対応する。

対応方法2

withでセッションとして渡す。
■Controller

// redirectするコントローラ
public function postForm(FormRequest $request)
{
    return redirect()->back()->withInput()->with('dataId', $dataId);
}

// 戻る画面のコントローラ
public function showForm(Request $request)
{
    if(isset(session('dataId')){
        $id = session('dataId');
    } else {
        $id = $request->input('id');
    }
}

セッションにあればセッションから、なけばクエリパラメータから取得している。



PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門