Maison cadre php Laravel Comment implémenter la fonction de saut de page avec des paramètres dans Laravel

Comment implémenter la fonction de saut de page avec des paramètres dans Laravel

Apr 19, 2023 am 10:08 AM

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(
    '[控制器名称]@[方法名称]'
);
Copier après la connexion

En utilisant la fonction view, vous pouvez écrire comme ceci :

return view('[视图文件路径]', [参数数组]);
Copier après la connexion

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);
    }
}
Copier après la connexion

Enregistrez les paramètres dans la session puis récupérez-les lors de la prochaine requête.

$params = $request->session()->get('params');
Copier après la connexion

Nous pouvons enregistrer le middleware dans le fichier web.php et ajouter le middleware à la route.

Route::middleware('params')->get('/', '[控制器名称]@[方法名称]');
Copier après la connexion

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']);
Copier après la connexion

Code d'itinéraire :

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

Dans le contrôleur, nous pouvons utiliser l'objet request pour obtenir les paramètres de l'URL.

$request->input('param1');
Copier après la connexion

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');
Copier après la connexion

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');
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La dernière méthode de l'installation de Laravel Framework La dernière méthode de l'installation de Laravel Framework Mar 06, 2025 pm 01:59 PM

La dernière méthode de l'installation de Laravel Framework

Comment construire une API RESTful avec des fonctionnalités avancées à Laravel? Comment construire une API RESTful avec des fonctionnalités avancées à Laravel? Mar 11, 2025 pm 04:13 PM

Comment construire une API RESTful avec des fonctionnalités avancées à Laravel?

Gestion du menu Laravel-Admin Gestion du menu Laravel-Admin Mar 06, 2025 pm 02:02 PM

Gestion du menu Laravel-Admin

Quelle version de Laravel est la meilleure Quelle version de Laravel est la meilleure Mar 06, 2025 pm 01:58 PM

Quelle version de Laravel est la meilleure

Comment mettre en œuvre l'authentification et l'autorisation OAuth2 dans Laravel? Comment mettre en œuvre l'authentification et l'autorisation OAuth2 dans Laravel? Mar 12, 2025 pm 05:56 PM

Comment mettre en œuvre l'authentification et l'autorisation OAuth2 dans Laravel?

Quelles sont les meilleures pratiques pour utiliser Laravel dans un environnement natif du cloud? Quelles sont les meilleures pratiques pour utiliser Laravel dans un environnement natif du cloud? Mar 14, 2025 pm 01:44 PM

Quelles sont les meilleures pratiques pour utiliser Laravel dans un environnement natif du cloud?

Comment puis-je créer et utiliser des règles de validation personnalisées dans Laravel? Comment puis-je créer et utiliser des règles de validation personnalisées dans Laravel? Mar 17, 2025 pm 02:38 PM

Comment puis-je créer et utiliser des règles de validation personnalisées dans Laravel?

Comment créer et utiliser des directives de lame personnalisées à Laravel? Comment créer et utiliser des directives de lame personnalisées à Laravel? Mar 17, 2025 pm 02:50 PM

Comment créer et utiliser des directives de lame personnalisées à Laravel?

See all articles