我在我的 Laravel 应用程序上遇到了这个问题,我正在尝试实现更改语言中间件,但我不断收到此错误未定义的数组键。 这是中间件片段
public function handle(Request $request, Closure $next): Response
{
$localeLanguage = \Session::get('languageChangeName');
$defaultLanguage = getSuperAdminSettingValue()['default_language']->value;
if (! isset($localeLanguage)) {
if(!empty($defaultLanguage)){
\App::setLocale($defaultLanguage);
$defaultLanguage;
}else{
\App::setLocale('en');
}
} else {
\App::setLocale($localeLanguage);
}
return $next($request);
}
}
发生该错误是因为 getSuperAdminSettingValue 方法返回的假定数组不包含“default_language”键作为数组中数据的一部分。我建议您将方法的响应分配给单独一行上的变量,然后添加它以检查返回的内容,然后再继续其余的实现。
$superAdminSettingValues = getSuperAdminSettingValue();
/*
* The line below is to be deleted before proceeding to the next line
* after confirming the variable is not an empty array and has the
* default_language as part of its data
*/
dd($superAdminSettingValues);
$defaultLanguage = $superAdminSettingValues['default_language']->value;