سلام وقت بخیر
این 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,
];
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟