ホームページ >PHPフレームワーク >Laravel >Laravelでパラメータを指定してページをジャンプする機能を実装する方法
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 = [ 'param1' => '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 サイトの他の関連記事を参照してください。