Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erklärung, wie man das Ressourcenrouting in Laravel neu schreibt

Ausführliche Erklärung, wie man das Ressourcenrouting in Laravel neu schreibt

*文
*文Original
2018-01-03 15:46:163002Durchsuche

Wie schreibe ich das Ressourcenrouting in Laravel neu? Dieser Artikel führt Sie hauptsächlich in die Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcen-Routing-URL in Laravel ein. Freunde in Not können sich darauf beziehen. Ich hoffe, es hilft allen.

Vorwort

Dieser Artikel stellt hauptsächlich den relevanten Inhalt zum Umschreiben benutzerdefinierter Ressourcenrouting-URLs in Laravel vor und stellt ihn als Referenz zur Verfügung. Unten gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einleitung:

Grund für das Umschreiben

Kürzlich während des Laravel verwendet Im Entwicklungsprojekt wurde das Ressourcen-Routing von Laravel verwendet, um den Routing-Code zu vereinfachen. 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, muss der Pfad /photo/{photo}/edit in /photo/edit/{photo}

Implementierungsschritte

Ich habe den Laravel-Quellcode abgefragt und festgestellt, dass sich die von diesem Pfad generierte Methode in der Klasse IlluminateRoutingResourceRegistrar.php befindet. Wir müssen 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);
 }
}

in AppServiceProvider Registrieren Sie diese Klasse

public function boot()
 {
  //重写资源路由
  $registrar = new \App\Routing\ResourceRegistrar($this->app['router']);
  $this->app->bind('Illuminate\Routing\ResourceRegistrar', function () use ($registrar) {
   return $registrar;
  });
 }
und verwenden Sie schließlich die von

generierte Route, um die Anforderungen zu erfüllen. Route::resource('photo', 'PhotoController');

Verwandte Empfehlungen:

Laravel optimierte Split-Routing-Datei

Laravel schreibt die APP-Schnittstelle (API)

Unter Verwendung der Laravel-Warteschlange

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man das Ressourcenrouting in Laravel neu schreibt. 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