2016-01-16 5 views
8

Ich brauche einen Laravel 5.2 routes.php Eintrag, der den gesamten Verkehr zu einem bestimmten Domain/premium-Bereich der Website zu fangen, so dass ich Menschen dazu bringen kann, zu werden Mitglieder vor dem Zugriff auf den Premium-Inhalt.Wie mache ich eine Catch-All-Route in Laravel 5.2

Ich beantworte meine eigene Frage ~ und hoffentlich können Leute diese Info benutzen.

Antwort

2
  1. In app/Http/routes.php ich eine Route, die den gesamten Datenverkehr innerhalb domain.com/premium-section/anywhere/they/try/to/go fangen und versuchen, eine passende Funktion zu finden und ausführen innerhalb von PremiumSectionController
  2. Aber es gibt keine passenden Methoden, nur ein Catch-All.

    Route::group(['as' => 'premium-section::', 
           'prefix' => 'premium-section', 
           'middleware' => ['web']], 
           function(){ 
           Route::any('', '[email protected]'); 
           Route::controller('/', 'PremiumSectionController'); 
    
           }); 
    

.

+0

ist dies eine Antwort? – lagbox

+0

ya, es hat für mich funktioniert. –

+0

, damit die Route 'domain.com/premium-section/anywhere/they/try/to/go' fängt? – lagbox

19

Sie könnten auch "alle" fangen, indem Sie einen Regex für den Parameter verwenden.

Auch kann die gesamte Gruppe fangen, wenn keine Routen mit einem optionalen Parameter definiert sind.

Route::get('{any?}', function ($any = null) { 
    ... 
})->where('any', '.*'); 

Dieser letzte würde auch "domain.com/premium-section" fangen.

+1

Vielen Dank für Ihre Antwort. Ich frage mich, warum Laravel nicht mit einem einfachen 'Route: any ('*')' codiert ist! – PHPst