Dans le framework Laravel, passer à une page est une opération très courante. Parfois, il est nécessaire d'apporter certains paramètres lors du saut, comme les mots-clés de recherche, le nombre de pages, etc. À ce stade, vous devez implémenter la fonction permettant d'accéder à la page avec les paramètres. Cet article expliquera comment implémenter la fonction de saut de page avec des paramètres et réaliser le passage de paramètres sans redirection.
1. Saut de base
Dans le framework Laravel, il existe deux façons de sauter, l'une consiste à utiliser la fonction de redirection et l'autre à utiliser la fonction d'affichage. La fonction de redirection est utilisée pour accéder à d'autres méthodes de contrôleur et la fonction d'affichage est utilisée pour accéder au fichier d'affichage.
En utilisant la fonction de redirection, vous pouvez écrire comme ceci :
return redirect()->action( '[控制器名称]@[方法名称]' );
En utilisant la fonction view, vous pouvez écrire comme ceci :
return view('[视图文件路径]', [参数数组]);
Les deux méthodes ne transmettent pas de paramètres Si vous devez transmettre des paramètres, nous devons utiliser ce qui suit. méthode.
2. Sauter avec les paramètres
2.1. Utiliser le middleware
Laravel fournit une fonction middleware très pratique Nous pouvons utiliser le middleware pour transmettre des paramètres à la requête suivante.
Nous pouvons créer un nouveau middleware, enregistrer les paramètres dans le middleware, puis récupérer ces paramètres lors de la prochaine requête. Le code du middleware est le suivant :
<?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); } }
Enregistrez les paramètres dans la session puis récupérez-les lors de la prochaine requête.
$params = $request->session()->get('params');
Nous pouvons enregistrer le middleware dans le fichier web.php et ajouter le middleware à la route.
Route::middleware('params')->get('/', '[控制器名称]@[方法名称]');
L'inconvénient de cette méthode est qu'elle nécessite l'utilisation d'une session. Si la session n'est pas activée, elle ne peut pas être utilisée.
2.2. Utilisation des paramètres d'URL
Nous pouvons également utiliser les paramètres d'URL pour transmettre des paramètres à la page suivante.
Lors du saut, nous pouvons utiliser la fonction itinéraire pour spécifier l'itinéraire, puis définir les paramètres de l'itinéraire.
Code de saut :
return redirect()->route('[路由名称]', ['param1' => 'value1', 'param2' => 'value2']);
Code d'itinéraire :
Route::get('/', '[控制器名称]@[方法名称]')->name('[路由名称]');
Dans le contrôleur, nous pouvons utiliser l'objet request pour obtenir les paramètres de l'URL.
$request->input('param1');
L'inconvénient de cette méthode est que les paramètres de l'URL seront affichés dans la barre d'adresse de l'URL, ce qui peut causer des problèmes à l'utilisateur.
2.3. Utilisation des paramètres de redirection
Laravel fournit une autre méthode pour transmettre des paramètres sans redirection. Examinons d'abord le code, puis expliquons-le.
return redirect()->to('/')->with('param1', 'value1')->with('param2', 'value2');
Lors de la redirection, nous pouvons utiliser la fonction with pour enregistrer les paramètres dans la session. De cette façon, les paramètres pourront être utilisés lors de la prochaine requête.
Dans le contrôleur, nous pouvons obtenir les paramètres comme celui-ci.
$request->session()->get('param1'); $request->session()->get('param2');
Cette méthode permet de transmettre des paramètres sans redirection et évite également l'interférence des paramètres d'URL avec les utilisateurs.
Résumé
Dans Laravel, il existe de nombreuses façons d'implémenter la fonction de saut de page avec des paramètres. Vous pouvez utiliser un middleware, des paramètres d'URL ou des paramètres de redirection. Différentes méthodes présentent différents avantages et inconvénients, et nous devons choisir la méthode la plus appropriée en fonction des besoins réels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!