2017-12-28 102 views
5

के साथ व्यवस्थापक पृष्ठ पर रीडायरेक्ट कैसे करें लार्वेल मल्टी ऑथ के बजाय मैं व्यवस्थापक उपयोगकर्ताओं के लिए अपनी (आदिम) विधि का उपयोग कर रहा हूं।कस्टम व्यवस्थापक तालिका

मेरे पास PAdmin नामक डेटाबेस में एक अतिरिक्त तालिका है और इस तालिका में मेरे पास व्यवस्थापक उपयोगकर्ताओं का आईडी है।

जब मैं एप्लिकेशन में लॉग इन करता हूं तो मैं व्यवस्थापक उपयोगकर्ताओं को 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 तालिका $isAdmin में उपयोगकर्ता की आईडी के साथ एक रिकॉर्ड है और elseif निष्पादित होगा।

दुर्भाग्यवश यह काम नहीं कर रहा है और मुझे नहीं पता कि क्यों।

शायद यह बिल्कुल करने का सही तरीका नहीं है।

क्या कोई मुझे यह अधिकार प्राप्त करने में मदद कर सकता है।

पीएस मैं multi auth का उपयोग नहीं करना चाहता हूं।

+0

अपना -> पहले प्राप्त करें() डेटा पहले जांचें। – jjwdesign

+0

आपको वास्तव में यह बदलना चाहिए "अगर $ isAdmin सही है तो इसका मतलब है कि उपयोगकर्ता व्यवस्थापक नहीं है" –

उत्तर

3
public function handle($request, Closure $next, $guard = null) 
{ 

    if (Auth::guard($guard)->check()) { 
    if(PAdmin::where('user_id',Auth::id())->first() != null) return redirect('/admin'); 
    return redirect('/home'); 

} 

return $next($request); 


} 

अधिक स्पष्ट और आसान।

संबंधित मुद्दे