के साथ व्यवस्थापक पृष्ठ पर रीडायरेक्ट कैसे करें लार्वेल मल्टी ऑथ के बजाय मैं व्यवस्थापक उपयोगकर्ताओं के लिए अपनी (आदिम) विधि का उपयोग कर रहा हूं।कस्टम व्यवस्थापक तालिका
मेरे पास 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
का उपयोग नहीं करना चाहता हूं।
अपना -> पहले प्राप्त करें() डेटा पहले जांचें। – jjwdesign
आपको वास्तव में यह बदलना चाहिए "अगर $ isAdmin सही है तो इसका मतलब है कि उपयोगकर्ता व्यवस्थापक नहीं है" –