微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未定义的偏移量:删除用户设置的语言后 0 laravel

如何解决未定义的偏移量:删除用户设置的语言后 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 举报,一经查实,本站将立刻删除。