Laravel・Lumenで元いたページ番号のページに戻る方法
Laravel・Lumenでページング処理をしている一覧から何かの処理をいれた後に、元いたページに戻したい時の方法を考えて見たのでまとめました。やり方次第では、ページ番号だけでなくても使えるかもしれません。
公開日:2018年9月4日
redirect()->route()でgetパラメータを渡すだけ
return redirect()->route('PostsList', ['page' => $request->get('page')]);
これだけです。分かる方はこれで完了です。
処理の詳細
それでは、詳しく見ていきましょう。
処理の流れは以下の通りです。
(1) ページング付き一覧ページを表示 (2) 何かDBの処理をするページを表示 (3) 元々いたページ(処理(1)のところ)に戻す
(1) 一覧のformにpage番号を仕込む @ビュー
まずは、コントローラからViewに変数で渡します。
page番号は、Eloquentのpaginateを使っていれば、$request->input(‘page’)で取得できます。
view側ではformかリンクに仕込んでおきます。今回は、$pageという変数でコントローラからViewにページ番号を渡し、formに仕込んでおきます。
<form action="{{route('PostDelete', ['post_id'=>$r->id])}}" method="post">
<input type="hidden" name="page" value="{{$page}}">
<button type="submit">削除</button>
</form>
(2) 処理をする @コントローラ
更新やら、削除やら処理をします。
(3) 処理後にリダイレクトする @コントローラ
処理メソッド側(今回ではPostDeleteというルート名でルーティングされているメソッド)には、getリクエストで元々いたページのページ番号が渡されているので、そのままリダイレクトでページ番号を渡します。
class PostsController extends Controller
{
public function delete(Request $request){
//何かの処理
return redirect()->route('PostsList', ['page' => $request->get('page')]);
}
}
これで何かの処理をした後に、一覧へ戻したい時に、元々のページ番号のページに戻せました。
新着ノート
-
Gitlabの2段階認証下でコンテナレジストリにPushする方法
gitlab
公開日:2020年12月23日
-
HUGO
公開日:2020年4月27日
新着コード
-
cURLでCloudflare APIでキャッシュを削除する
cloudflare
公開日:2020年5月1日
-
iOS Safariでselectを含む要素にoverflow-y:scrollすると横にスクロールする時の対応
iOS
公開日:2020年4月15日