Laravel中间件非数据库值的对象
问题描述:
我最近开始使用php Laravel
,所以我可能不在这里,但我认为它不会受到伤害。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
错误。
任何帮助,将不胜感激。
答
BUDDY! 尝试$locale = App::getLocale();
而不是Auth::User()->lang
你欠我一个国际足联比赛!
我现在不能测试这个,但不是'Auth :: user()'区分大小写? 'Auth :: User()'--->'Auth :: user()' –