2017-10-16 1 views
0

私は最近php Laravelで作業を開始しましたので、ここでベースにはならないかもしれませんが、質問するのは怪我をしないと思いました。Laravel Middlewareデータベース値ではないオブジェクト

各ユーザーの優先言語を判断しようとしています。 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

これを今はテストすることはできませんが、 'Auth :: user()'は大文字と小文字を区別しませんか? 'Auth :: User()' ---> 'Auth :: user()' –

答えて

1

BUDDY! Auth::User()->langの代わりに$locale = App::getLocale();を試してください あなたは私にFIFAゲームを借りてください!

関連する問題