Help us understand the problem. What is going on with this article?

Laravel ルートパラメータ持ちのURLにリダイレクトする

目的

  • ルートパラメータが設定されているURLにパラメータ値を指定してリダイレクトする方法をまとめる

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.5)
ハードウェア MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
プロセッサ 2 GHz クアッドコアIntel Core i5
メモリ 32 GB 3733 MHz LPDDR4
グラフィックス Intel Iris Plus Graphics 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いてこちらの方法で導入→Mac HomebrewでMySQLをインストールする

前提条件

  • 実施環境と同じ環境が構築されていること。

前提情報

  • 公式ドキュメントを読んでおくと理解が早いかもしれない。
  • /user/{user_id}にリダイレクトする方法を記載する。
  • ルーティングには下記の様な記載があるとする。ルーティング設定部分のみ記載する。

    web.php
    Route::get('/user/{user_id}', 'UserHomeController@index');
    

読後感

  • ルートパラメータが設定されているURLへのリダイレクト方法が分かる。
  • 名前付きルーティングにパラメータを渡す方法が分かる。

実施(一つのルートパラメータ)

  1. ルーティングファイルを開きリダイレクト先のルーティングの記載を編集し、ルーティング情報に名前をつける。

    web.php
    Route::get('/user/{user_id}', 'UserHomeController@index')->name('user.index');
    
  2. リダイレクト処理を行いたい場所に下記の記載を行う。(下記が実行されると/user/1にリダイレクトする。)

    return redirect(route('user.index', [
        'user_id' => 1,
    ]));
    

実施(複数のルートパラメータ)

  1. ルーティングファイルを開きリダイレクト先のルーティングの記載を編集し、ルーティング情報に名前をつける。

    web.php
    Route::get('/user/{user_id}/{age_id}', 'UserHomeController@index')->name('user.index');
    
  2. リダイレクト処理を行いたい場所に下記の記載を行う。(下記が実行されると/user/1/2にリダイレクトする。)

    return redirect(route('user.index', [
        'user_id' => 1,
        'age_id' => 2,
    ]));
    

簡単なまとめ

  • ルーティング情報に名前をつける方法

    //ルーティング情報->name('ルーティング情報の名前')
    Route::get('/user/{user_id}/{age_id}', 'UserHomeController@index')->name('user.index');
    //上記の記載でルーティング情報に「user.index」という名前が付けられた。
    
  • 名前付きのルーティング情報にリダイレクトする方法

    return redirect('ルーティング情報に付けた名前');
    
  • リダイレクト先のURLにルートパラメータがあるときにリダイレクトする方法

    return redirect('ルーティング情報に付けた名前', [
        'ルートパラメータ' => リダイレクト時にルートパラメータに入る値,
    );
    

参考文献

miriwo
web系のバックエンドの知識を習得中!
https://miriwo.hatenablog.com/
boomtechcafe
埼玉県の朝霞台を拠点にエンジニアの勉強会、交流会等のイベントを企画しています! 朝霞台駅か北朝霞駅が全然行けちゃうぜってエンジニアの方がいたら是非! もくもく会とかゲーム大会とかもやれたらな~って思ってます。
https://boom-teck-cafe.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした