Как сделать маршрут Catch-All в Laravel 5.2

Мне нужна запись laravel 5.2 routes.php, которая поймает весь трафик на определенный домен domain.com/premium – раздел сайта, чтобы я мог пригласить людей стать членами, прежде чем обращаться к премиальному контенту.

Я отвечу на свой вопрос ~ и, надеюсь, люди могут использовать эту информацию.

Solutions Collecting From Web of "Как сделать маршрут Catch-All в Laravel 5.2"

Вы также можете поймать «все», используя регулярное выражение для параметра.

Route::group(['prefix' => 'premium-section'], function () { // other routes ... Route::get('{any}', function ($any) { ... })->where('any', '.*'); }); 

Также можно поймать всю группу, если маршруты не определены с необязательным параметром.

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

Этот последний поймал бы «domain.com/premium-section».

  1. В app / Http / routes.php я создаю маршрут, который поймает весь трафик в домене domain.com/premium-section/anywhere/they/try/to/go и попытается найти и выполнить соответствующую функцию в PremiumSectionController
  2. Но нет подходящих методов, просто уловки.

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

,

  namespace App\Http\Controllers; use ... class PremiumSectionController extends Controller{ public function premiumContentIndex(){ return 'no extra parameters'; } //magically gets called by laravel public function missingMethod($parameters = array()){ return $parameters; } } 

Это делает трюк:

 Route::any('/{any}', 'MyController@myMethod')->where('any', '.*');