ホームページ >PHPフレームワーク >Laravel >Laravelでパラメータを指定してページをジャンプする機能を実装する方法

Laravelでパラメータを指定してページをジャンプする機能を実装する方法

PHPz
PHPzオリジナル
2023-04-19 10:08:151385ブラウズ

Laravel フレームワークでは、ページへのジャンプは非常に一般的な操作です。ジャンプするときに、検索キーワードやページ数などのパラメータを指定する必要がある場合があります。このときパラメータ付きのページにジャンプする機能を実装する必要があります。この記事では、パラメータでページをジャンプする機能を実装し、リダイレクトなしでパラメータの受け渡しを実現する方法を紹介します。

1. 基本的なジャンプ

Laravel フレームワークでは、リダイレクト関数を使用する方法とビュー関数を使用する方法の 2 つのジャンプ方法があります。他のコントローラメソッドへのジャンプにはリダイレクト関数を、ビューファイルへのジャンプにはview関数を使用します。

リダイレクト関数を使用すると、次のように記述できます:

return redirect()->action(
    '[控制器名称]@[方法名称]'
);

ビュー関数を使用すると、次のように記述できます:

return view('[视图文件路径]', [参数数组]);

どちらのメソッドもパラメータを渡しません。パラメータを渡す必要があります。次のアプローチをとる必要があります。

2. パラメータでジャンプ

2.1. ミドルウェアを利用する

Laravel には非常に便利なミドルウェア機能があり、ミドルウェアを利用して次の Requesting にパラメータを渡すことができます。

新しいミドルウェアを作成し、ミドルウェアにパラメータを保存し、次のリクエストでこれらのパラメータを取得できます。ミドルウェア コードは次のとおりです。

<?php

namespace App\Http\Middleware;

use Closure;

class ParamsMiddleware
{
    public function handle($request, Closure $next)
    {
        $params = [
            &#39;param1&#39; => 'value1',
            'param2' => 'value2',
            'param3' => 'value3',
        ];
        
        $request->session()->put('params', $params);
        
        return $next($request);
    }
}

セッション内のパラメータを保存し、次のリクエストで取り出します。

$params = $request->session()->get('params');

web.php ファイルにミドルウェアを登録し、ルートにミドルウェアを追加できます。

Route::middleware('params')->get('/', '[控制器名称]@[方法名称]');

この方法の欠点は、セッションを使用する必要があり、セッションがオンになっていないと使用できないことです。

2.2. URL パラメーターの使用

URL パラメーターを使用して次のページにパラメーターを渡すこともできます。

ジャンプするときは、route関数を使用してルートを指定し、ルートにパラメータを設定できます。

ジャンプ コード:

return redirect()->route('[路由名称]', ['param1' => 'value1', 'param2' => 'value2']);

ルーティング コード:

Route::get('/', '[控制器名称]@[方法名称]')->name('[路由名称]');

コントローラーでは、リクエスト オブジェクトを使用して URL パラメーターを取得できます。

$request->input('param1');

この方法の欠点は、URL パラメータが URL アドレス バーに表示されるため、ユーザーに迷惑がかかる可能性があることです。

2.3. リダイレクトパラメーターの使用

Laravel は、リダイレクトなしでパラメーターを渡す別の方法を提供します。まずコードを見てから説明しましょう。

return redirect()->to('/')->with('param1', 'value1')->with('param2', 'value2');

リダイレクトする場合、with 関数を使用してパラメータをセッションに保存できます。こうすることで、パラメータを次のリクエストで使用できるようになります。

コントローラーでは、次のようにパラメーターを取得できます。

$request->session()->get('param1');
$request->session()->get('param2');

このメソッドは、リダイレクトなしでパラメーターの受け渡しを実現し、ユーザーへの URL パラメーターの干渉も回避します。

まとめ

Laravelでは、パラメータを指定してページをジャンプする機能を実装する方法がたくさんあります。ミドルウェア、URL パラメーター、またはリダイレクト パラメーターを使用できます。それぞれの方法には異なるメリットとデメリットがあり、実際のニーズに応じて最適な方法を選択する必要があります。

以上がLaravelでパラメータを指定してページをジャンプする機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。