Laravel Middleware非对象数据库值

时间:2017-10-16 20:52:00

标签: php laravel authentication

我最近开始与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错误。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

BUDDY! 试试$locale = App::getLocale();代替Auth::User()->lang 你欠我一个国际足联比赛!