我最近开始与php Laravel
合作,所以我可能会离开这里,但我认为这不会让人感到害怕。
我正在尝试确定每个用户的首选语言。在blades
上执行此操作可以完成工作,但我读到它应该在blade
页之外设置。
我制作了一个新的Middleware
,我可以在那里进行设置,但我不确定为什么它没有捕获实际的database
值。
public function handle($request, Closure $next)
{
if (Auth::User())
App::setLocale(Auth::User()->lang);
else
App::setLocale('en');
return $next($request);
}
这部分App::setLocale('en');
工作正常,它将语言环境设置为所有页面。它Auth::User()
之上的条件永远不会成立,但是从不基于lang
值设置区域设置。当我尝试运行它时,它会出现ErrorException - Trying to get property of non-object
错误。
任何帮助将不胜感激。
答案 0 :(得分:1)
BUDDY!
试试$locale = App::getLocale();
代替Auth::User()->lang
你欠我一个国际足联比赛!