Перенаправление слишком много раз после входа в систему, используя laravel - PullRequest
0 голосов
/ 30 апреля 2020

Я использовал промежуточное ПО для проверки пользователей. здесь у меня есть два пользователя администратор и студент. обе детали хранятся в пользовательской таблице. Теперь проблема в том, что когда я go для входа в систему, он перенаправляет на страницу панели администратора, но страница не работает, перенаправляет слишком много раз. Промежуточное программное обеспечение

public function handle($request, Closure $next)
    {
        if(Auth::User()->type == 1) {
            return redirect('AdminDashboard');
        } else {
            redirect('StudentDashboard');
        } 
    }

homeController

use App\Http\Middleware\checkUser;
public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('checkUser');

    }
    public function index()
    {
        if(!(Auth::User)){
            return redirect('login');
        }

    }

web. php

Auth::routes();
Route::get('/','UserController@index');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('AdminDashboard', 'DashboardController@index')->name('AdminDashboard');
Route::get('dashboard/videos', 'DashboardController@videos')->name('adminVideos');
Route::post('file-upload/upload', 'FileUploadController@upload')->name('upload');
Route::get('StudentDashboard', 'DashboardController@studentRegister')->name('StudentDashboard');
Route::post('/newRegister', 'UserController@newRegister')->name('newRegister');

DashboardController

use App\Http\Middleware\checkUser;
public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('checkUser');
    }

    public function index()
    {
        $students = Students::with('classes')->with('subclasses')->get();
        return view('admin.dashboard',compact('students'));
    }
public function studentRegister()
    {
        $classes = Classes::where('status', '1')->get();
        $subclasses = SubClass::where('status', '1')->get();
        return view('admin.studentRegister',compact('classes','subclasses')); 
    }

After login

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Когда вы перенаправляете, он возвращается к тому же промежуточному программному обеспечению и перенаправляет снова и снова, что приводит к нескольким перенаправлениям. Таким образом, вместо перенаправления в обоих случаях используйте return $next в правильном случае и перенаправление в неправильном случае. экв:

public function handle($request, Closure $next)
    {
        if(Auth::User()->type == 1) {
            return $next;
        } 
        redirect('StudentDashboard');
    } 
0 голосов
/ 30 апреля 2020

Вы должны быть добавлены для проверки функциональности пользователя в вашем контроллере. Потому что, когда промежуточное ПО перенаправляет на панель администратора, оно вызывается снова, поэтому оно перенаправляется на несколько раз. Если вы хотите использовать промежуточное ПО еще, верните view в промежуточное ПО. Надеюсь, это будет полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...