سوالی در مورد هدایت به صفحه پروفایل

4 سال پیش توسط علی مطرح شد
آفلاین
user-avatar
علی ( 14411 تجربه )
4 سال پیش
تخصص : Laravel

لینک کوتاه اشتراک گذاری

1

سلام دوستان . سناریو بدین صورته که برنامه چندین نقش مختلف داره . مثلا ( کاربر ، ادمین ، نویسنده ، دپارتمان ای تی، دپارتمان مالی ، دپارتمان فروش )
حالا من میخام وقتی کاربر لاگین میکنه متناسب با نقشش به صفحه پروفایل مربوط به خودش هدایت بشه. با middleware نتونستم این کارو بکنم خطا میگیرم همش. بهترین راه چیه ؟ این که من همشونو هدایت کنم به صفحه profile.blade و اونجا چندتا if بذارم ؟
یا اینکه چندین صفحه مختلف داشته باشم مثلا user.profile ، admin.profile و ....
مشکل middleware رو نفهمیدم واقعا . یکی نوشتم چندتا if داشت مشکلیم نبود ولی هر زمان اجرا میشد مثلا برای کاربر درست بود ولی برای بقیش خطا میداد. خیلی عجیب بود برام واقعا

بهترین پاسخ
آفلاین
user-avatar
علی
4 سال پیش
        class ProfileMiddleware  
        {  
        public function handle($request, Closure $next)  
        {  
        if (auth()->check()) {

                    if (auth()->user()->role == 'admin') {
                        return redirect(route('admin.profile'));
                    } elseif (auth()->user()->role == 'user') {
                        return redirect(route('user.profile'));
                    } elseif (auth()->user()->role == 'financial') {
                        return redirect(route('fanincial.profile'));
                    }

                    return $next($request);
                }
            }

        }

خب این رو من نوشتم و در route::group این middleware رو قرار دادم ولی اجرا نمیشه و خطای زیر رو میده

This page isn’t working
192.168.12.42 redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

آفلاین
user-avatar
علی ( 14411 تجربه )
4 سال پیش
تخصص : Laravel

لینک کوتاه اشتراک گذاری

0
        class ProfileMiddleware  
        {  
        public function handle($request, Closure $next)  
        {  
        if (auth()->check()) {

                    if (auth()->user()->role == 'admin') {
                        return redirect(route('admin.profile'));
                    } elseif (auth()->user()->role == 'user') {
                        return redirect(route('user.profile'));
                    } elseif (auth()->user()->role == 'financial') {
                        return redirect(route('fanincial.profile'));
                    }

                    return $next($request);
                }
            }

        }

خب این رو من نوشتم و در route::group این middleware رو قرار دادم ولی اجرا نمیشه و خطای زیر رو میده

This page isn’t working
192.168.12.42 redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.