Heim > Backend-Entwicklung > PHP-Tutorial > Informationen zur Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcenrouting-URL in Laravel

Informationen zur Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcenrouting-URL in Laravel

不言
Freigeben: 2023-03-31 22:24:01
Original
1808 Leute haben es durchsucht

Dieser Artikel führt Sie hauptsächlich in die Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcen-Routing-URL in Laravel ein. Freunde, die sie benötigen, können darauf verweisen

Vorwort

Dieser Artikel stellt Ihnen hauptsächlich den relevanten Inhalt zum Umschreiben benutzerdefinierter Ressourcen-Routing-URLs in Laravel vor und teilt ihn als Referenz und zum Studium. Ich werde im Folgenden nicht viel sagen, werfen wir einen Blick auf die detaillierte Einführung:

Grund für das Umschreiben

Im jüngsten Prozess der Projektentwicklung mit Laravel habe ich zur Vereinfachung des Routing-Codes die Ressource von Laravel verwendet Routing,Route::resource('photo', 'PhotoController');

Standardmäßig lautet die von Laravel generierte Routing-Tabelle wie folgt:

动作 路径 Action 路由名称
GET /photo index photo.index
GET /photo/create create photo.create
POST /photo store photo.store
GET /photo/{photo} show photo.show
GET /photo/{photo}/edit edit photo.edit
PUT/PATCH /photo/{photo} update photo.update
DELETE /photo/{photo} destroy photo.destroy

Um die Projektanforderungen zu erfüllen, wird /photo/{photo }/edit path muss geändert werden in / photo/edit/{photo}

Implementierungsschritte

Ich habe das Laravel abgefragt Quellcode und haben festgestellt, dass sich die Methode zum Generieren dieses Pfads in IlluminateRoutingResourceRegistrar befindet. In der PHP-Klasse müssen wir die Methode addResourceEdit dieser Klasse überschreiben.

Schreiben Sie die addResourceEdit-Methode neu

Erstellen Sie eine neue Klasse AppRoutingResourceRegistrar.php mit dem folgenden Code:

namespace App\Routing;

use Illuminate\Routing\ResourceRegistrar as OriginalRegistrar;
class ResourceRegistrar extends OriginalRegistrar
{
 /**
  * Add the edit method for a resourceful route.
  *
  * @param string $name
  * @param string $base
  * @param string $controller
  * @param array $options
  * @return \Illuminate\Routing\Route
  */
 protected function addResourceEdit($name, $base, $controller, $options)
 {
  $uri = $this->getResourceUri($name).'/'.static::$verbs['edit'].'/{'.$base.'}';

  $action = $this->getResourceAction($name, $controller, 'edit', $options);

  return $this->router->get($uri, $action);
 }
}
Nach dem Login kopieren

Registrieren Sie diese Klasse in AppServiceProvider

public function boot()
 {
  //重写资源路由
  $registrar = new \App\Routing\ResourceRegistrar($this->app['router']);
  $this->app->bind('Illuminate\Routing\ResourceRegistrar', function () use ($registrar) {
   return $registrar;
  });
 }
Nach dem Login kopieren

Verwenden Sie schließlich die von Der Bedarf ist gedeckt. Route::resource('photo', 'PhotoController');

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Über Bindungsvorgänge von Laravel-Framework-Routing und -Controllern

Laravel-Framework-Routing-Einstellungen

Das obige ist der detaillierte Inhalt vonInformationen zur Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcenrouting-URL in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage