سلام وقت بخیر
این 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
با سلام
داخل else از این کد استفاده کنید:
return response(redirect()->route('home'));
اگر مشکلتون حل نشد از home عکس بفرستید
موفق باشید
@nesyourys
@nesyourys
اینم امتحان کن شاید نتیجه داد
return (request()->header('referer')) ? redirect()->back() : redirect()->route('home');
اگر نشد کد صفحه ی home رو هم بزار ببینیم
سلام
نکته مهم اینکه شما 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 هست
همین، فکر کنم مشکلت حل بشه
با سلام
داخل else از این کد استفاده کنید:
return response(redirect()->route('home'));
اگر مشکلتون حل نشد از home عکس بفرستید
موفق باشید
@nesyourys
@samanzdev این کد رو ک نوشتم
return response(redirect()->route('home'));
صفحه هر چند ثانیه رفرش میشد
سلام
بله حتما
با anydesk؟
nesyou0105 ایدی تلگرامم اگ میشه اونجا پیام بدید ک راحت تره بشه چت کرد
@samanzdev
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, ];
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟