Redirect Hello coder's i have 3 roles in my system admin,doctor,user a ceated a middleware to redirect each to appropriate page but when am login as admin if i change the url login in will redirect to login i don't want that am using Laravel 11
public function handle(Request $request, Closure $next, $role): Response
{
if ($request->user()->role !== $role) {
if ($request->user()->role === 'doctor') {
return redirect()->route('doctor.dashboard');
}elseif ($request->user()->role === 'admin') {
return redirect()->route('admin.dashboard');
}elseif($request->user()->role === 'user'){
return redirect()->route('dashboard');
}
}
return $next($request);
}
Route::get('/admin/dashboard',[AdminController::class,'Dashboard'])->name('admin.dashboard');
Route::get('/admin/specialty',[SpecialtyController::class,'index'])->name('admin.specialty');
Route::post('/admin/specialty/store',[SpecialtyController::class,'store'])->name('admin.specialty.store');
Route::post('/admin/specialty/update/{id}',[SpecialtyController::class,'update'])->name('admin.specialty.update');
Route::post('/admin/specialty/destroy/{id}',[SpecialtyController::class,'delete'])->name('admin.specialty.destroy');```
});
Route::get('/admin/login',[AdminController::class,'AdminLogin'])->name('admin.login');
Route::get('/admin/logout',[AdminController::class,'AdminLogout'])->name('admin.logout');'''
i don't want that
What do you want?
if i change the url login in will redirect to login
As expected?
@Snapey when you're logged in in laravel it redirects to dashboard when you try to change the url to log in again it will redirect to dashboard thats what i want as an admin it should redirect to dashboard when log in.
hi
use like this codes:
you can use return response()->view
in middleware
if (Auth::check() && auth()->user()->type == '1') {
$user = User::all();
return response()->view('manager', compact('user'));
} elseif (Auth::check() && auth()->user()->type == '2') {
return response()->view('admin');
} else {
return response()->view('home');
}
1-you can use in in controller
if (auth()->user()->type == '1') {
return redirect()->route('manager');
}else if (auth()->user()->type == '2') {
return redirect()->route('admin');
}else{
return redirect()->route('home');
}
}else{
return redirect()->route('login')
2-use 2 middleware
@lara_love
The only thing you should do in middleware is allow the request to pass through or return a redirect.
Definately not loading data and returning a view.
hello Mr @Snapey
I don't enter this piece of code in middleware
$user = User::all();
, it gives $user error
@Lara_Love
you can use return response()->view in middleware
Please sign in or create an account to participate in this conversation.