Maison  >  Article  >  cadre php  >  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

齐天大圣
齐天大圣original
2020-12-09 18:23:531980parcourir

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]+');

À 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();
 }

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]');

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', '.*');

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');

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');

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']);

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}}

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']);
});

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:
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