5
laravel multi auth 대신 관리자 사용자가 내 자신의 (원시) 메서드를 사용하고 있습니다.사용자 지정 관리 테이블을 사용하여 관리 페이지로 리디렉션하는 방법
나는 데이터베이스에 PAdmin
이라는 추가 테이블을 가지고 있는데,이 테이블에는 관리자의 ID가 있습니다.
응용 프로그램에 로그인 할 때 관리자 사용자를 home
페이지가 아닌 다른 페이지로 리디렉션하고 싶습니다.
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
내가이 그것을 변경 :이에서 그래서 그 이유로
, 나는 HTTP를 \ 미들웨어 \ RedirectIfAuthenticated에 가서 코드를 변경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. multi auth
을 사용하고 싶지 않습니다.
-> get() 데이터를 먼저 확인하십시오. – jjwdesign
"$ isAdmin이 TRUE이면 사용자가 관리자가 아님을 의미합니다." –