私は最近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
が返されます。
ご協力いただければ幸いです。
これを今はテストすることはできませんが、 'Auth :: user()'は大文字と小文字を区別しませんか? 'Auth :: User()' ---> 'Auth :: user()' –