5
laravel multi authの代わりに、独自の(プリミティブ)メソッドを使用して管理ユーザーを使用しています。カスタム管理テーブルを使用して管理ページにリダイレクトする方法
PAdmin
という名前のデータベースに余分なテーブルがあります。このテーブルには、管理ユーザーのIDがあります。
アプリケーションにログインすると、adminユーザーをhome
ページの代わりに別のページにリダイレクトします。そのため
は、私は、HTTP \ミドルウェア\ RedirectIfAuthenticatedに行ってきましたし、これからので、コードを変更:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
私はこれにそれを変更:
public function handle($request, Closure $next, $guard = null)
{
$user_id = Auth::id();
$isAdmin = PAdmin::where('user_id',$user_id)->get()->isEmpty();//returns 'true' if empty
if (Auth::guard($guard)->check() && $isAdmin) {//IF $isAdmin is TRUE it means that the user is not admin
return redirect('/home');
}elseif (Auth::guard($guard)->check() && !($isAdmin)){//IF $isAdmin is FALSE it means that the user is not admin
return redirect('/admin');
}
return $next($request);
}
考え方は単純です - 場合PAdmin
テーブルのユーザIDが$isAdmin
のレコードが偽となり、elseif
が実行されます。
残念ながら、これは動作していません。理由はわかりません。
これはまったく正しい方法ではないかもしれません。
誰かが私にこの権利を手伝うことができますか?
P.S.私はmulti auth
を使いたくありません。
- > get()データを最初に確認してください。 – jjwdesign
あなたは本当にこれを変更する必要があります "$ isAdminがTRUEならば、ユーザーがadminではないことを意味します" –