Maison > cadre php > Laravel > Cours Laravel 3 : Contraintes globales sur les paramètres de routage, la redirection de routage et la liaison de la vue de routage

Cours Laravel 3 : Contraintes globales sur les paramètres de routage, la redirection de routage et la liaison de la vue de routage

齐天大圣
Libérer: 2020-12-10 09:09:52
original
2059 Les gens l'ont consulté

Un article précédent a déjà expliqué quelques connaissances sur le routage, et je vais continuer à ajouter quelques points aujourd'hui.

Contraintes globales sur les paramètres de routage

Nous savons déjà que nous pouvons utiliser la méthode Where pour contraindre les paramètres, comme suit :

Route::get('news/{id}', function ($id)
{
    echo 'news:' . $id;
})->where('id', '[0-9]+');

Route::get('list/{id}', function ($id)
{
    echo 'list:' . $id;
})->where('id', '[0-9]+');
Copier après la connexion

À propos de Cet identifiant est utilisé par plusieurs routes et les contraintes sont les mêmes. Ensuite, nous pouvons contraindre les identifiants à l’échelle mondiale. De cette manière, le routage local n’a pas besoin d’être contraint et le code ne sera pas redondant.

Maintenant, modifions la méthode de démarrage dans app/Providers/RouteServiceProvider.php et ajoutons une ligne de code, comme suit :

public function boot()
 {
     Route::pattern('id', '[0-9]+');
     parent::boot();
 }
Copier après la connexion

Une fois définies, ces règles seront automatiquement appliquées à tous sur la route en utilisant ce nom de paramètre. Mais si je souhaite annuler cette restriction ou réinitialiser les règles de paramètres sur des itinéraires individuels, comment dois-je procéder ?

Pour réinitialiser, réinitialisez simplement les règles dans la méthode Where

Route::get('news/{id}', function ($id)
{
    echo 'news:' . $id;
})->where('id', '[a-z]');
Copier après la connexion

La méthode pour annuler la restriction consiste en fait à réinitialiser les règles, mais utilisez .* dans les règles pour régulariser les caractères

Route::get('news/{id}', function ($id)
{
    echo 'news:' . $id;
})->where('id', '.*');
Copier après la connexion

Redirection d'itinéraire

Nous pouvons passer d'un itinéraire à une autre adresse ou à un autre itinéraire, utilisez simplement la méthode de redirection de Route

// 跳转到php中文网
Route::redirect('index', ' 

// 跳转到本站另一个路由
Route::redirect('a', 'news/1');
Copier après la connexion

La redirection d'itinéraire utilise la redirection temporaire 302 par défaut. Si vous souhaitez configurer la redirection permanente 301, vous devez définir le troisième paramètre ou utiliser une autre méthode, qui est permanentRedirect.

Route::redirect('b', 'news/1', 301);
Route::permanentRedirect('c', 'news/2');
Copier après la connexion

Liaison d'itinéraires et de vues

Les itinéraires peuvent également être liés directement aux vues sans passer par le contrôleur. Ici, nous devons utiliser la méthode view, qui a trois paramètres : uri (paramètres obligatoires), nom de la vue (paramètres obligatoires) et paramètres (paramètres facultatifs).

Route::view('vtest', 'view1', ['str' => 'study laravel']);
Copier après la connexion

Créons maintenant un fichier de vue nommé view1 et créons un fichier view1.blade.php dans le répertoire resources/views. Le contenu du fichier est le suivant :

view1{{$str}}
Copier après la connexion

En plus de. en utilisant Route::view De plus, vous pouvez également utiliser la fonction de vue globale lors de la fermeture de get ou d'autres méthodes pour obtenir le même effet.

Route::get('vtest', function ()
{
    return view('view1', ['str' => 'study laravel2']);
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal