2017-05-08 1 views
1

Ich bin mir nicht sicher, der beste Weg, dies zu tun, aber im Grunde habe ich einige Routen eingerichtet und einige Anbieter auch, aber meine Art von "alle fangen" Route wird aufgerufen, wenn ich brauche Anbieter "/ Forum" verwendet werden.Laravel fangen alle Route als letzte Option

Hier sind meine Routen:

Route::get('/', function() { return view('welcome'); }); 
Route::get('/contact', function() { return view('contact'); }); 
Route::get('/login', function() { return view('login'); }); 
Route::get('/signup', '[email protected]'); 
Route::get('/logout', '[email protected]'); 
Route::get('/{slug}', '[email protected]'); 

Sie können die letzte Strecke sehen im Grunde bekommt nur die Schnecke und dann in der Steuerung kehre ich die Seite von Slug. Das Problem ist mit/forum die [email protected] wird aufgerufen, da ich nehme an, Laravel schaut sich diese Route Datei vor dem Anbieter. Gibt es eine bessere Möglichkeit, es einzurichten, so dass Route::get('/{slug}', '[email protected]'); als die letzte mögliche Option auch nach Herstellerrouten aufgerufen wird?

Antwort

0

Laravel-Routen werden geladen, damit sie definiert sind. Die einzige Möglichkeit, /forum vor /{slug} abzugleichen, besteht darin, sicherzustellen, dass die Route zuerst geladen wird. Um zu garantieren, dass es zuletzt geladen wird, würde ich vorschlagen, es hinzuzufügen, nachdem alle anderen Routen in app/Providers/RouteServiceProvider.php geladen werden, die wie aussehen würden:

public function map() 
{ 
    $this->mapApiRoutes(); 
    $this->mapWebRoutes(); 

    Route::get('/{slug}', 'App\Http\Controllers\[email protected]'); 
} 
+0

Danke. Auch wenn ich es in das 'app/Providers/RouteServiceProvider.php' Forum setze versuche diesen falschen Controller zu benutzen. '/ forum' Route wird von einem Vendor-Paket behandelt, daher muss ich' Route :: get ('/ {slug}', 'App \ Http \ Controller \ PageController @ show'); } 'nach Anbieter routet auch – Packy

+0

ohhh, dann setzen Sie den Anbieter dieses Anbieters im' providers'-Array in 'config/app.php' vor' App \ Providers \ RouteServiceProvider :: class, 'und es sollte zuerst diese Route laden vor deinen Routen. –