поэтому я пытаюсь поставить свою локализацию в качестве префикса на домене моего сайта, поэтому я сделал промежуточное ПО, которое ставит язык локализации на 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