⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همه‌چیز به قیمت قبل برمی‌گرده!

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
راکت
حل شده

خطا middleware

13 پاسخ

سلام وقت بخیر
این Middleware منه

    public function handle(Request $request, Closure $next)
    {

        if(Auth::check()){
            if(Auth::user()->level == 1){
                return $next($request);
            }else{

                return redirect(route('home'));
            }
        }
        return $next($request);
    }

ولی وقتی redirect میزارم با این صفحه مرورگر برخورد میکنم
This page isn’t workinglocalhost redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

dd ک میزارم بجای redirect درست کار میکنه
@hesammousavi

ثبت پرسش جدید

پاسخ‌ها

13
Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

بهترین پاسخ

با سلام
داخل else از این کد استفاده کنید:

 return response(redirect()->route('home'));

اگر مشکلتون حل نشد از home عکس بفرستید
موفق باشید
@nesyourys

سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

@nesyourys
سلام

دستور redirect رو به این صورت بنویسید

redirect()->route('home');
redirect('home')
NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

همه اینا رو چک کردم ولی به نتیجه نرسیدم همشون یکیه
@sina.it91

شاید پاسخ شما همین‌جا باشد

سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

@nesyourys
اینم امتحان کن شاید نتیجه داد

return (request()->header('referer')) ? redirect()->back() : redirect()->route('home');

اگر نشد کد صفحه ی home رو هم بزار ببینیم

مهدی
مهدی
@mrmmg

تخصص: برنامه نویس و طراح وب

سلام
نکته مهم اینکه شما middleware رو بد نوشتی، کدت رو اصلاح کردم و بهتره به صورت زیر بنویسی:

public function handle(Request $request, Closure $next)
    {

            if(auth()->user()->level == 1) {
                return $next($request);
            }

            return redirect()->route('home');
    }

حالا اون Auth::Ckeck کجا رفت؟ نیازی به اون نیست، در واقع میتونی از میدلور auth روی route خودت استفاده کنی و دقیقا مشابه همون if هست

همین، فکر کنم مشکلت حل بشه

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

@mrmmg
اینم همونو داد

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

@samanzdev
@mrmmg
توضیح تصویر رو وارد کنید

توضیح تصویر رو وارد کنید
@samanzdev این کد رو ک نوشتم

 return response(redirect()->route('home')); 

صفحه هر چند ثانیه رفرش میشد

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

@samanzdev

شما راه حل دیگه ای برای انجام همین کار ندارید؟

سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

@nesyourys
اگه میتونی کد کنترولر صفحه home و روت اون رو بزار

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

می تونم ریموت بشم به سیستمتون ؟
مشکل رو سریع تر میشه حل کرد.
@nesyourys

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

سلام
بله حتما
با anydesk؟
nesyou0105 ایدی تلگرامم اگ میشه اونجا پیام بدید ک راحت تره بشه چت کرد
@samanzdev

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

UserLevel MIddleware

class UserLevel
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        if(Auth::user()->level == 1 ){
            return $next($request);
        }
        return redirect('/');
        return $next($request);
    }        

}

Web.php


Route::get('/', function () {return view('welcome');})->name('home');
Route::middleware(['auth:sanctum', 'verified', 'UserLevel'])->get('/dashboard', [App\Http\Controllers\Admin\DashboardController::class,'index'])->name('dashboard');

Route::group([ 'namespace' => 'App\Http\Controllers\Admin' , 'middleware' => ['auth','UserLevel'] ,'prefix' => 'admin'], function () {
    Route::post('calculation/detail', 'calculationController@detail')->name('calculation.detail');
    Route::resource('user', 'UserController');
    Route::resource('price', 'PriceController');
    Route::resource('seller', 'SellerController');
    Route::resource('purchase', 'PurchaseController');
    Route::resource('calculation', 'calculationController');
});

kernel.php

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Laravel\Jetstream\Http\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\UserLevel::class,
        ],

        'api' => [
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'UserLevel' => \App\Http\Middleware\UserLevel::class,
    ];

@sina.it91

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

سلام مجدد
داخل تگرامتون یه چک بفرمایید
@nesyourys

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام