2016-05-16 5 views
0

からコントローラに変数を渡す:あなたが見ることができるように私はこのroute.php持っているルート

Route::group(['prefix' => 'v3/page1'], function() 
{ 
    Route::get('page1', '[email protected]'); 
}); 

Route::group(['prefix' => 'v4/page1'], function() 
{ 
    Route::get('page1', '[email protected]'); 
}); 

を、同じルートを持つ2グループがあります。唯一の違いは、プレフィックスがグループごとに若干異なることです。

ルートからコントローラにデータを渡す方法が必要です。この場合、私はルートからコントローラへ「v3」または「v4」ストリングを渡すことにのみ関心があります。

私はbefore_filterについて少しお読みしました。しかし、それが正しい方法であるかどうかはわかりません。 解決策は、URL(コントローラのコンストラクタ内)を抽出し、プレフィックスがv3またはv4であるかどうかを理解することができます。しかし、もっと良い方法があるのか​​、もっとベストプラクティスなのだろうと思う。おそらくbefore_filterの何か?

+1

この[質問](http://stackoverflow.com/questions/31113361/laravel-5-get-route-prefix-in-controller-method)の回答は、あなたにも当てはまります。また、接頭辞から "/ page1"部分を削除することもできます。 – sevavietl

答えて

3

からの続きを読む:あなたのコントローラで

Route::group(['prefix' => '{version}/page1'], function(){ 
    Route::get('page1', '[email protected]'); 
})->where('version', 'v[3|4]'); 

をあなたは$request->version

でバージョンを取得することができます
1

私はそれがページ1ルートで二回表示されます意味するだろうと私は、接頭辞の「ページ1」に合格しないと、この

Route::group(['prefix' => '{version}'], function() 
{ 
    Route::get('page1', '[email protected]'); 
}); 

のようにそれを記述します。 'page1($ version)'メソッドでバージョンを取得できるはずです。 私はこれをテストしていません。

関連する問題