Laravel 5.3アプリケーションでローカリゼーションを作成しています。それは、このような要件に従わなければならない:Laravelのルートアクションからルートプレフィックスを削除する方法
ルート・パスは、ロケール接頭辞が含まれている場合は、ロケールが何のルートプレフィクスがありません場合は、それが英語に設定する必要があります。この接頭辞
に応じて設定する必要があります。
例えば
:
A)mysite.org/pl/blog/133
セットはpl
にロケールと)パラメータ113
CとBlogController mysite.org/en/blog/133
セットen
にロケール)113
BパラメータでBlogControllerを呼び出し、呼び出しmysite.org/blog/133
は以前と同じように動作します。
これを実装するために、私は次のコードを使用していました:
#routes/web.php
require base_path('routes/common.php');
// TODO set default locale to en
Route::group(['prefix' => '{locale}'], function($group) {
require base_path('routes/common.php');
// TODO set locale to $locale
foreach ($group -> getRoutes() as $route) {
$route->where('locale', 'en|ru|pl|ua|de');
}
});
#routes/common.php
Route::get('/blog/{id}', function($id) {
// Return view of respective blogpost
});
問題は、私はパスAまたはBを使用する場合、私は、ロケールプレフィックスから派生した、私のアクション機能、中に余分な最初のパラメータを取得するということです。
どういうわけかこのパラメータを非表示にすることはできますか?それとも、構造的に正しい方法で私が望むものを達成する方法はありますか?
おかげで、私が探していたまさに、返信用の。私は実際にMcamara/LaravelLocalizationでこれを実現しました –