プレミアムコンテンツにアクセスする前にメンバーになるように促すために、サイトの特定のdomain.com/premium-sectionへのすべてのトラフィックをキャッチするlaravel 5 routes.phpエントリが必要です。
私は自分の質問に答えます〜そして、うまくいけば人々はこの情報を使うことができます。
ただし、一致するメソッドはなく、すべてをキャッチします。
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::group(['prefix' => 'premium-section'], function () {
// other routes
...
Route::get('{any}', function ($any) {
...
})->where('any', '.*');
});
また、オプションのparamでルートが定義されていない場合、グループ全体をキャッチできます。
Route::get('{any?}', function ($any = null) {
...
})->where('any', '.*');
この最後のものも「domain.com/premium-section」をキャッチします。
これはトリックを行います:
Route::any('/{any}', 'MyController@myMethod')->where('any', '.*');