Дополнительный префикс группы маршрутов Laravel не работает - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть несколько маршрутов, сгруппированных по префиксу, как показано ниже.Но это не работает без {lang} в URL.URL без {lang} получат ошибку 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('/', 'HomeController@index')->name('home');
    Route::get('/about', 'AboutController@index')->name('about');
    Route::get('/portfolio', 'PortfolioController@index');
    Route::get('/portfolio/{category_id}/cat', 'PortfolioController@indexWithCategory');
    Route::get('/portfolio/loadmore/{category_id}/cat', 'PortfolioController@loadmore');
    Route::get('/portfolio/loadmore', 'PortfolioController@loadmore');
    Route::get('/portfolio/{id}/{title}', 'PortfolioController@show');
    Route::get('/articles', 'ArticleController@index');
    Route::get('/articles/{id}/', 'ArticleController@article_show');
    Route::get('/articles/{id}/{title}', 'ArticleController@article_show');
    Route::get('/blogs', 'ArticleController@blogs');
    Route::get('/blogs/{id}', 'ArticleController@show');
    Route::get('/blogs/{id}/{title}', 'ArticleController@show');
    Route::get('/faq', 'ArticleController@faq');
    Route::get('/contacts', 'ContactsController@index');
});

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

не используйте необязательный параметр для префикса, префикс предназначен для использования параметра fix в начале URL, поэтому теперь маршрутизация laravel не знает точно, какой у вас сегмент исправления !!с помощью этой группы маршрутов вы можете отправить любой параметр или строку в качестве префикса для примера. Эти маршруты foo / about, bar / about, xxxx / about все из них идут в about url

0 голосов
/ 28 ноября 2018

Я думаю, что проблема в дополнительном префиксе lang.

Просто разделите маршруты на две категории: 1. которые будут иметь префикс lang

без префикса lang

ИЛИ было бы лучше, если вы используете lang в конце маршрута вместо того, чтобы использовать его в качестве префикса.

...