префикс и промежуточное ПО по какой-то причине не работают. для некоторых маршрутов - PullRequest
0 голосов
/ 15 мая 2018

поэтому я пытаюсь поставить свою локализацию в качестве префикса на домене моего сайта, поэтому я сделал промежуточное ПО, которое ставит язык локализации на URL каждый раз, когда вы пытаетесь открыть страницу, вот мое промежуточное ПО

 public function handle($request, Closure $next)
{
    if ($request->method() === 'GET') {
        $segment = $request->segment(1);


        if (!in_array($segment, config('app.locales'))) {
            $segments = $request->segments();
            $fallback = session('locale') ?: config('app.fallback_locale');
            $segments = array_prepend($segments, $fallback);

            return redirect()->to(implode('/', $segments));
        }

        session(['locale' => $segment]);
        app()->setLocale($segment);
    }
    return $next($request);
}

ия добавил промежуточное программное обеспечение в routemiddleware

protected $routeMiddleware = [
    'Locate' =>  \App\Http\Middleware\Locale::class,
];

, и я добавил префикс и промежуточное программное обеспечение для всех моих маршрутов, как этот

Route::prefix('{lang?}')->middleware('Locate')->group(function() {

Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout')->name('logout');

Route::get('/home', 'HomeController@index')->name('home');


Route::get('/admin/login', function () {
    return view('admin.auth.login');
})->name('AdminLogin');


Route::get('/contact-us', 'ContactUsController@Contactus')->name('ContactUs');
Route::post('/contact-us', 'ContactUsController@PostContactus')->name('PostContactUs');




Route::prefix('auth')->group(function () {
    Route::get('/login', function () {
        return view('auth.login');
    })->name('Login');

    Route::post('/login', 'Auth\LoginController@Login')->name('userslogin');

});



Route::prefix('search')->group(function () {
    Route::get('/categories', 'search\SearchController@Categories')->name('Categories');
    Route::get('/filter/{categoryseo}', 'search\SearchController@filter')->name('InstructorsSearch');
    //sending categoryseo to the filter page so i can put it in hidden input in the filter page and use it to get the list

    Route::get('/list', 'search\SearchController@InstructorList')->name('InstructorsSearchList');
    Route::get('/profile/{userid?}', 'search\SearchController@instructorprofile')->name('InstructorProfile');
});

});

, по некоторым причинам страницы типа / home получаютпромежуточное программное обеспечение и изменения, как я хотел, например, / en / home, что касается других, таких как поиск / категории, он даже не заметит мое промежуточное программное обеспечение, но я попытался удалить префикс локализации и просто поставить свое промежуточное программное обеспечение, чтобы оно работало, и он заметил мое промежуточное программное обеспечение.используя laravel 5.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...