2017-03-27 4 views
0

Gibt es eine Möglichkeit, das Folgende sauberer zu definieren?Wie definiere ich zwei verschiedene Routen zum selben Controller?

Route::get('/', '[email protected]')->name('home'); 
Route::get('/home', '[email protected]'); 

Was wäre die empfohlene, performanteste Laravel-Methode?

+0

In diesem Fall könnten Sie haben ' '/'' Umleitung auf ' '/ home' (oder umgekehrt), so' Strecke :: get ('/' , function() {return redirect ('/ home'); }); '. Nichtsdestotrotz glaube ich nicht, dass es etwas Falsches/Performance-schweres damit hat, dass beide Routen auf die gleiche Controller-Funktion zugreifen. –

Antwort

1

Sie können Regex verwenden, um mehrere Routen zu einem Controller zuzuordnen. Nicht sicher, ob es sauberer oder sogar "besser" aussieht.

$router->get('/{home?}', '[email protected]') 
     ->where('home', '(home|another_home_route)') 
     ->name('home'); 

Dies ist für die Routen funktionieren:

  • /
  • /home
  • /another_home_route
0
Route::get('/{verb?}', '[email protected]'); 

Und dann übernehmen die Logik innerhalb der Reglerfunktion

function home($verb = 'empty') { 
    if ($verb == 'home') { 
     // do home thing 
    } else if ($verb == 'empty') { 
     // do empty thing 
    } 
} 

https://laravel.com/docs/5.4/routing Abschnitt Optionale Parameter

Verwandte Themen