Heim  >  Artikel  >  PHP-Framework  >  Eine kurze Analyse, ob jede Seite in Laravel eine Route definieren muss

Eine kurze Analyse, ob jede Seite in Laravel eine Route definieren muss

PHPz
PHPzOriginal
2023-04-03 17:55:16648Durchsuche

Routing bezieht sich in Laravel auf den Mechanismus, der URLs mit Methoden in entsprechenden Controllern verknüpft. Mit dem Routing von Laravel können Sie die URL unserer Anwendung sehr bequem verwalten, URL-Freundlichkeit erreichen und Controller und Methoden schnell und flexibel finden.

Müssen wir also für jede Seite eine Route dafür definieren? Die Antwort ist natürlich nein. Lassen Sie es uns weiter unten im Detail erklären.

Eine typische Website-Anwendung enthält normalerweise viele Module und Funktionen, und jedes Modul und jede Funktion verfügt über eine entsprechende Seite. Wenn Sie für jede Seite eine Route definieren, ist dies sehr umständlich und überflüssig und führt zu zu vielen Routen, was die Wartung unpraktisch macht.

Also müssen wir einige Techniken verwenden, um unser Routing-Design zu vereinfachen:

Zuerst können wir einige Routing-Regeln definieren. Beispielsweise beginnen alle artikelbezogenen Seiten auf unserer Website mit „/article/“, dann können wir die Routing-Regeln für diese verwandten Seiten über den folgenden Code definieren:

Route::group(['prefix' => 'article'], function () {
    Route::get('/', 'ArticleController@index');
    Route::get('/detail/{id}', 'ArticleController@detail');
    Route::get('/edit/{id}', 'ArticleController@edit');
});

Durch solche Routing-Regeln entspricht der Zugriff „/article/“. Zur Indexmethode in ArticleController entspricht der Zugriff auf „/article/detail/{id}“ der Detailmethode in ArticleController, der Zugriff auf „/article/edit/{id}“ entspricht der Bearbeitungsmethode in ArticleController.

Zweitens können wir das Ressourcenrouting nutzen, um unser Routing bequemer zu verwalten. In Laravel ist das Ressourcenrouting eine sehr praktische Möglichkeit, denselben Anforderungstyp und Pfad für mehrere verwandte Routen zu definieren. Beispielsweise können wir das artikelbezogene Ressourcenrouting wie folgt definieren:

Route::resource('article', 'ArticleController');

Zu diesem Zeitpunkt können wir über den folgenden Link auf die entsprechende Controller-Methode zugreifen:

  • GET /article: Zeigt die Artikellistenschnittstelle an
  • GET /article /create: Zeigt die Benutzeroberfläche zum Erstellen von Artikeln an die Schnittstelle des angegebenen Artikels
  • PUT/PATCH /article/{id}: den angegebenen Artikel aktualisieren
  • DELETE /article/{id}: den angegebenen Artikel löschen
  • Schließlich können wir auch den automatischen Routengenerierungsmechanismus verwenden bereitgestellt von Laravel, um unser Routing-Design zu vereinfachen. In Laravel können wir den folgenden Code verwenden, um Routen für Methoden im Controller stapelweise zu generieren:
  • Route::controller('article', 'ArticleController');
  • Anschließend können wir über den folgenden Link auf die entsprechende Controller-Methode zugreifen:
GET /article: Zeigt die Artikellistenschnittstelle an Die entsprechende Controller-Methode ist getIndex()

GET /article/create: Zeigt die Artikelerstellungsschnittstelle an, die entsprechende Controller-Methode ist getCreate()

POST /article: Erstellt einen neuen Artikel, die entsprechende Controller-Methode Für postIndex()
  • GET /article/{id}: Zeigt die Detailschnittstelle des angegebenen Artikels an. Die entsprechende Controller-Methode ist getShow($id)
  • GET /article/{id}/edit: Zeigt die Schnittstelle zum Ändern des angegebenen Artikels und des entsprechenden an Controller-Methode ist getEdit($id)
  • PUT/PATCH /article/{id}: den angegebenen Artikel aktualisieren, die entsprechende Controller-Methode ist putIndex($id)
  • DELETE /article/{id}: löschen Um einen Artikel anzugeben , die entsprechende Controller-Methode ist deleteIndex($id)
  • Mit den oben genannten drei Methoden können wir das Routing relativ einfach verwalten, ohne für jede Seite eine Route definieren zu müssen. Dies bedeutet natürlich nicht, dass nicht alle Seiten weitergeleitet werden müssen. Seiten, die angezeigt werden müssen, müssen dennoch durch entsprechendes Routing verwaltet werden, aber wir können durch vernünftiges Design verhindern, dass das Routing zu redundant und umständlich wird.

Das obige ist der detaillierte Inhalt vonEine kurze Analyse, ob jede Seite in Laravel eine Route definieren muss. 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