在我的应用程序中,当用户输入此URL时,http://127.0.0.1:8000/showContent/aboutUs
laravel显示错误为
抱歉,找不到您要查找的页面。
正确的路径是http://127.0.0.1:8000/en/showContent/aboutUs
,我试图管理它并为此添加缺失的段,例如:
路线:
Route::get('{lang?}/showContent/aboutUs', array('as' => 'lang', 'uses' => 'HomeController@showAboutUsPage'))->where('lang', '.+');
映射路线:
protected function mapWebRoutes()
{
$locale = request()->segment(1);
if ($locale != 'fa' && $locale != 'en') {
$locale = 'fa';
}
app()->setLocale($locale);
Route::middleware('web')
->namespace($this->namespace)
->prefix($locale)
->group(base_path('routes/web.php'));
}
on mapWebRoutes
函数我使用多语言和管理路由,并且缺少参数作为segment(1)
上的语言键我收到错误,现在我如何添加丢失的段或管理路由到重定向到正确的路径?
答案 0 :(得分:0)
答案 1 :(得分:0)
我的问题解决了:
我将kernel.php
更改为:
protected $middleware = [
\App\Http\Middleware\Language::class,
...
];
和Language
上课:
public function handle($request, Closure $next)
{
$locale = $request->segment(1);
if (!array_key_exists($locale, config('app.locales'))) {
$segments = $request->segments();
array_unshift($segments,config('app.fallback_locale'));
return redirect(implode('/', $segments));
}
app()->setLocale($locale);
return $next($request);
}