私は複数のユーザーロールとアクションを持つアプリケーションを構築しています。私は公式のラーベル文書(https://laravel.com/docs/5.5/middleware#middleware-parameters)に従った。laravel 5.5コンストラクタ内のユーザーの詳細を取得
しかし、私のコントローラのコンストラクタ(上記のミドルウェアを呼び出す場所)では、ユーザーの詳細を取得するためにAuthファサードを使用しています。私はAuthファサードの使い方を知っているので、私はアプリケーション内のいくつかの場所に実装していました。しかし、コンストラクタ内で使用すると、nullが返されます(ログイン状態で - 私はそれを二重にチェックします)。
私はこのようなことを実現し、私は(登録ユーザーのみがそのページにアクセスすることができますので)2つのコントローラを呼び出す必要があり
public function __construct()
{
$role = Auth::user()->role;
$this->middleware('auth');
$this->middleware('checkRole:$role');
}
PS:私はまだ、保護されたとして$の役割の変数を初期化しようとしたとコンストラクタ外働いていない。どんな提案も参考になります
ありがとうございます。
laravelは、コンストラクタの内部で認証を許可しなかった理由を私は理解していません。 – Grald