Im Laravel-Framework ist das Springen zu einer Seite ein sehr häufiger Vorgang. Manchmal ist es notwendig, beim Springen einige Parameter anzugeben, z. B. Suchbegriffe, Anzahl der Seiten usw. Zu diesem Zeitpunkt müssen Sie die Funktion zum Springen zur Seite mit Parametern implementieren. In diesem Artikel wird erläutert, wie Sie die Funktion zum Überspringen von Seiten mithilfe von Parametern implementieren und eine Parameterübergabe ohne Umleitung erreichen.
1. Grundlegender Sprung
Im Laravel-Framework gibt es zwei Möglichkeiten zum Springen: Eine besteht darin, die Umleitungsfunktion zu verwenden, und die andere darin, die Ansichtsfunktion zu verwenden. Die Umleitungsfunktion wird verwendet, um zu anderen Controller-Methoden zu springen, und die Ansichtsfunktion wird verwendet, um zur Ansichtsdatei zu springen.
Mit der Umleitungsfunktion können Sie so schreiben:
return redirect()->action( '[控制器名称]@[方法名称]' );
Mit der Ansichtsfunktion können Sie so schreiben:
return view('[视图文件路径]', [参数数组]);
Beide Methoden übergeben keine Parameter, wir müssen Folgendes verwenden Verfahren.
2. Mit Parametern springen
Laravel bietet eine sehr praktische Middleware-Funktion, um Parameter an die nächste Anfrage zu übergeben.
Wir können eine neue Middleware erstellen, die Parameter in der Middleware speichern und diese Parameter dann in der nächsten Anfrage abrufen. Der Middleware-Code lautet wie folgt:
<?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); } }
Speichern Sie die Parameter in der Sitzung und nehmen Sie sie dann in der nächsten Anfrage heraus.
$params = $request->session()->get('params');
Wir können die Middleware in der web.php-Datei registrieren und der Route hinzufügen.
Route::middleware('params')->get('/', '[控制器名称]@[方法名称]');
Der Nachteil dieser Methode besteht darin, dass sie die Verwendung einer Sitzung erfordert. Wenn die Sitzung nicht aktiviert ist, kann sie nicht verwendet werden.
2.2. URL-Parameter verwenden
Wir können auch URL-Parameter verwenden, um Parameter an die nächste Seite zu übergeben.
Beim Springen können wir die Routenfunktion verwenden, um die Route anzugeben und dann die Parameter in der Route festzulegen.
Sprungcode:
return redirect()->route('[路由名称]', ['param1' => 'value1', 'param2' => 'value2']);
Routencode:
Route::get('/', '[控制器名称]@[方法名称]')->name('[路由名称]');
Im Controller können wir das Anforderungsobjekt verwenden, um die URL-Parameter abzurufen.
$request->input('param1');
Der Nachteil dieser Methode besteht darin, dass die URL-Parameter in der URL-Adressleiste angezeigt werden, was für den Benutzer zu Problemen führen kann.
2.3. Verwendung von Umleitungsparametern
Laravel bietet eine weitere Methode zur Übergabe von Parametern ohne Umleitung. Schauen wir uns zuerst den Code an und erklären ihn dann.
return redirect()->to('/')->with('param1', 'value1')->with('param2', 'value2');
Beim Umleiten können wir die with-Funktion verwenden, um die Parameter in der Sitzung zu speichern. Auf diese Weise können die Parameter bei der nächsten Anfrage verwendet werden.
Im Controller können wir die Parameter wie folgt abrufen.
$request->session()->get('param1'); $request->session()->get('param2');
Diese Methode ermöglicht die Parameterübergabe ohne Umleitung und vermeidet außerdem die Beeinträchtigung von Benutzern durch URL-Parameter.
Zusammenfassung
In Laravel gibt es viele Möglichkeiten, die Funktion zum Überspringen von Seiten mit Parametern zu implementieren. Sie können Middleware, URL-Parameter oder Weiterleitungsparameter verwenden. Verschiedene Methoden haben unterschiedliche Vor- und Nachteile, und wir müssen die am besten geeignete Methode entsprechend den tatsächlichen Anforderungen auswählen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion zum Springen von Seiten mit Parametern in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!