Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung, wie man das Ressourcenrouting in Laravel neu schreibt
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
Schreiben Sie die addResourceEdit-Methode neu
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!