Maison  >  Article  >  cadre php  >  Conférence Laravel 4 : Dénomination des routes et regroupement des routes

Conférence Laravel 4 : Dénomination des routes et regroupement des routes

齐天大圣
齐天大圣original
2020-12-09 20:28:352479parcourir

Nom d'itinéraire

Le nom d'itinéraire permet au programme d'obtenir facilement des informations de routage. Après avoir obtenu ces informations, il peut rediriger ou effectuer d'autres opérations. Les commandes de routage sont implémentées via la méthode name. Ensuite, nommons une route :

Route::get('about', function () {})->name('index.about');

Après avoir nommé une route, vous pouvez obtenir l'URL de la route via la fonction d'assistance route.

$url = route('index.about');
echo $url;  // http://localhost:8000/about

Si nous ne voulons pas la partie avant du nom de domaine, mais seulement le chemin arrière, alors nous pouvons le faire

$url = route('index.about', [], false);
echo $url;  // /about

Si vous définissez un itinéraire avec des paramètres, vous pouvez utiliser le paramètres comme fonction de route Le deuxième paramètre est passé dans

Route::get('news/{id}', 'IndexController@news')->name('home.news');

...
return redirect()->route('home.news', ['id' => 23]);

Le deuxième élément du tableau de paramètres dans la fonction de route peut automatiquement correspondre aux paramètres de routage si le deuxième élément du tableau de paramètres dans la fonction de route est supérieur aux paramètres. défini par l'itinéraire, il effectuera un épissage automatique pour générer une URL

echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]);
// http://localhost:8000/news/23?page=3&page_num=20

Regroupement d'itinéraires

Le rôle du regroupement d'itinéraires est lorsque le système a défini de nombreuses routes, mais certaines routes ont Si vous avez des points communs, tels que le même préfixe d'espace de noms ou le même préfixe de chemin, vous pouvez regrouper les routes qui ont des points communs dans une seule route, ce qui facilite la gestion et réduit le nombre de routes. de code, et le code a l'air bien. Plus élégant.

Préfixe d'itinéraire

Nous mettons les itinéraires avec le même préfixe dans un groupe. Ci-dessous se trouvent deux itinéraires avec le même préfixe :

Route::prefix('index')->get('a', function () {
    return 'a'; // 匹配/index/a
});

Route::prefix('index')->get('b', function () {
    return 'b'; // 匹配/index/b
});

Maintenant, nous les mettons dans un groupe

Route::prefix('index')->group(function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});

En plus d'utiliser la méthode du préfixe, vous pouvez également utiliser le premier paramètre de la méthode de groupe paramètres, comme suit :

Route::group(['prefix' => 'index'], function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});

Espace de noms

L'espace de noms est également un groupe de routage fréquemment utilisé.

Route::group(['namespace' => 'Home'], function ()
{
    Route::get('home/index', 'IndexController@index');
});

Si le code ci-dessus ne définit pas d'espace de noms, la route ci-dessus sera

Route::get('home/index', 'Home\IndexController@index');

nom de sous-domaine

utilisé Définissez le nom de domaine accessible. S'il ne s'agit pas de ce nom de domaine, il n'est pas accessible même si le chemin est correct.

Route::domain('php.cn')->group(...)

Préfixe de nom

La méthode de nom peut ajouter un préfixe donné

Route::name('abc.')->group( function ()
{
    Route::get('home', function () {

    })->name('home');
});

……
$url = route('abc.home');
à l'itinéraire dans chaque groupe d'itinéraires

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