如何解决未定义的偏移量:删除用户设置的语言后 0 laravel
我是 laravel 和 PHP 的新手,用户有特定的语言可以使用,我从管理面板中删除了这种语言,这当然导致用户无法登录帐户,我们收到此错误。我再次创建了 lang 文件但不起作用..现在我遇到了这个错误并需要帮助来解决这个问题,它帮助我了解更多关于 laravel 和 PHP 的信息。请兄弟帮忙
$lang = DB::table('languages')->where('id',Auth::user()->language)->get();
App::setLocale($lang[0]->lang_code);
解决方法
您必须检查 $lang 是否有一些数据,然后您才能获取其 lang 代码,请尝试如下
if(count($lang)) {
App::setLocale($lang[0]->lang_code);
}
,
我建议你做这样的事情:
$lang = DB::table('languages')->where('id',Auth::user()->language)->first();
if ($lang) {
App::setLocale($lang->lang_code);
}
,
这是因为您的查询没有获取任何记录(因为您删除了它),并且您正在调用索引 0,如果您的查询获取了一些记录,它是数组键。 有多种方法可以解决此类问题。 例如:
if($lang->count() == 0) {
//set default language
App::setLocale('en');
} else {
//if has records select the first row
App::setLocale($lang[0]->lang_code);
}
此外,如果您想检索单个记录,我建议使用 first() 而不是 get()。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。