Heim  >  Artikel  >  PHP-Framework  >  Laravel-Vorlesung 4: Routenbenennung und Routengruppierung

Laravel-Vorlesung 4: Routenbenennung und Routengruppierung

齐天大圣
齐天大圣Original
2020-12-09 20:28:352459Durchsuche

Routenbenennung

Routenbenennung dient dazu, dass das Programm problemlos Routinginformationen abrufen kann. Mit diesen Informationen können Sie umleiten oder andere Vorgänge ausführen. Routing-Befehle werden über die Namensmethode implementiert. Als nächstes benennen wir eine Route:

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

Nachdem Sie eine Route benannt haben, können Sie die URL der Route über die Assistentenfunktion Route abrufen.

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

Wenn wir nicht den vorderen Teil des Domainnamens wollen, sondern nur den hinteren Pfad, dann können wir das tun

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

Wenn wir eine Route mit Parametern definieren, können wir die Parameter als zweiten Parameter des übergeben Routenfunktion

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

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

Das zweite Parameter-Array-Element in der Routen-Funktion kann automatisch den Routing-Parametern entsprechen. Wenn das zweite Parameter-Array-Element in der Routen-Funktion mehr als die von der Route festgelegten Parameter hat, wird die URL automatisch gespleißt um die URL zu generieren

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

Routengruppierung

Die Rolle der Routengruppierung besteht darin, dass, wenn das System viele Routen eingerichtet hat, aber festgestellt wird, dass einige Routen etwas gemeinsam haben, z. B. dasselbe Namespace-Präfix, oder das gleiche Pfadpräfix, dann können Sie die Routen gruppieren, die etwas gemeinsam haben. Das Zusammenfassen dieser Routen in einer Route erleichtert die Verwaltung und reduziert die Codemenge, und der Code sieht eleganter aus.

Routenpräfix

Wir fassen Routen mit demselben Präfix in einer Gruppe zusammen. Unten sind zwei Routen mit demselben Präfix:

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

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

Jetzt ordnen wir sie einer Gruppe zu

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

Zusätzlich zur Verwendung der Präfixmethode können Sie sie auch im ersten Parameter der Gruppenmethode festlegen, wie unten gezeigt:

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

Namespace

Namespace ist auch eine häufig verwendete Routing-Gruppierung.

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

Wenn der obige Code keinen Namespace festlegt, wird die obige Route

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

Subdomainname

verwendet, um festzulegen, auf welchen Domainnamen zugegriffen werden kann auch wenn der Pfad korrekt ist.

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

Namenspräfix

Die Namensmethode kann der Route in jeder Routengruppe ein bestimmtes Präfix hinzufügen

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

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

……
$url = route('abc.home');

Das obige ist der detaillierte Inhalt vonLaravel-Vorlesung 4: Routenbenennung und Routengruppierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn