description

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

- 5 ماه پیش
توسط علی آپدیت شد
علی ( 533 تجربه )
5 ماه پیش

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

بهترین پاسخ انتخاب شده توسط علی
علی
5 ماه پیش
        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

علی ( 533 تجربه )
5 ماه پیش
        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

برای ارسال پاسخ باید وارد سایت شوید