0 レビュー
2 回答
php-Laravelルートグループのオプションのプレフィックスが機能しない
以下のようにプレフィックスでグループ化されたルートがいくつかあります。ただし、URLに{lang}がないと機能しません。 {lang}のないURLは404エラーを受け取ります。誰かが問題が何であるかを推測できますか?
ルート
Route::group(['namespace' => 'Site', 'prefix' => '{lang?}',
'where' => array('lang' => 'en|fa')], function () {
if (\Request::segment(1) !== 'panel' || \Request::segment(1) !== 'login') {
$locale = \Request::segment(1);
if (in_array($locale, ['fa', 'en'])) Illuminate\Support\Facades\App::setLocale($locale);
}
Route::get('/', '[email protected]')->name('home');
Route::get('/about', '[email protected]')->name('about');
Route::get('/portfolio', '[email protected]');
Route::get('/portfolio/{category_id}/cat', '[email protected]');
Route::get('/portfolio/loadmore/{category_id}/cat', '[email protected]');
Route::get('/portfolio/loadmore', '[email protected]');
Route::get('/portfolio/{id}/{title}', '[email protected]');
Route::get('/articles', '[email protected]');
Route::get('/articles/{id}/', '[email protected]_show');
Route::get('/articles/{id}/{title}', '[email protected]_show');
Route::get('/blogs', '[email protected]');
Route::get('/blogs/{id}', '[email protected]');
Route::get('/blogs/{id}/{title}', '[email protected]');
Route::get('/faq', '[email protected]');
Route::get('/contacts', '[email protected]');
});
わからない
0
レビュー
答え :
解決策:
問題はオプションのlangプレフィックスにあると思います。
ルートを2つのカテゴリに分けるだけです。 1.langプレフィックスが付きます
- langプレフィックスがない
または、ルートの最後に接頭辞として使用するのではなく、langを使用する方がよいでしょう。
わからない
0
レビュー
答え :
解決策:
プレフィックスにオプションのパラメーターを使用しないでください。プレフィックスはURLの先頭で修正パラメーターを使用することを目的としているため、laravelルーティングは修正セグメントが正確に何であるかを認識しません!!このルートグループを使用すると、このルートの例のプレフィックスとして任意のパラメータまたは文字列を送信できます。foo/ about、bar / about、xxxx/aboutすべてがabouturlに移動します
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。