В своем приложении я предоставил префикс, например, en
, который мой сайт загружает как domain.xyz/en
, теперь это работает, но мне нужно добавить:
принудительное перенаправление, когда пользователь посещает веб-сайты без префикса:
например. Пользователь пытается загрузить domain.xyz
, этот домен должен перенаправить на domain.xyz/en
( префикс по умолчанию ) в первый раз для загрузки сайта, но позже, если пользователь выберет другой язык, он может быть установлен на это. Р.Г. domain.xyz/es
Вопрос
Что я должен написать в своем промежуточном программном обеспечении для достижения этого перенаправления?
Я пытался использовать:
1-$request->route().parameters();
and
2-$request->route().getPrefix();
не повезло.
code
<?php
namespace App\Http\Middleware;
use Closure;
class PrefixMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
Обновление
Вот как выглядит мой web.php
:
$route_prefix = \Config::get('app.route_prefix');
Route::group(['middleware' => 'verified', 'prefix' => $route_prefix.'/'], function () use ($route_prefix){
Route::get('/', 'HomeController@welcome')->name('homepage');
});
Обновление 2
Теперь, основываясь на предложении комментариев, у меня есть что-то вроде:
public function handle($request, Closure $next)
{
$prefix = \Config::get('app.route_prefix');
\App::setLocale($prefix);
return $next($request.'/'.$prefix);
}
и возвращается:
Call to a member function setUserResolver() on string