在我的网络应用程序中,我试图检查本地URL,例如:
在此http://www.sample.com/aboutUs
网址中,我们没有en
,ru
等任何区域设置,例如:http://www.sample.com/en/aboutUs
。
在我的网络应用中,我实施了简单的中间件,以便在网址不具备时检查并修复网址:
class language
{
public function handle($request, Closure $next)
{
dd($request);
$locale = $request->segment(1);
if (!array_key_exists($locale, config('app.locales'))) {
$segments = $request->segments();
$segments[0] = config('app.fallback_locale');
return redirect(implode('/', $segments));
}
app()->setLocale($locale);
return $next($request);
}
}
注册的内容:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\Language::class,
...
],
'api' => [
'throttle:60,1',
'bindings',
],
];
protected $routeMiddleware = [
'language' => \App\Http\Middleware\Language::class,
...
];
只有当我们在URL中使用区域设置并且我的代码为:
时,此中间件才有效Route::get('/showContent/aboutUs', ['middleware' => 'language', function()
{
dd('asda');
//
}]);
这不起作用,我看不到任何dd
输出
1:
Route::group(['middleware' => 'web'], function () {
Route::get('/showContent/aboutUs', 'HomeController@aboutUs');
});
2:
Route::group(['middleware' => 'language'], function () {
Route::get('/showContent/aboutUs', 'HomeController@aboutUs');
});
对于我的所有解决方案,我得到了这个输出:
抱歉,找不到您要查找的页面。