问题描述
我是 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()。