Laravel После входа в систему собирается / Маршрут - PullRequest
0 голосов
/ 05 октября 2018

Это мой LoginController

 protected $redirectTo;
/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    if(Auth::check() && Auth::user()->role->id == 1){
        $this->redirectTo=route('admin.dashboard');
    }
    else{
        $this->redirectTo=route('user.dashboard');
      }

    $this->middleware('guest')->except('logout');
}

} Вот мой web.php

Route::get('/', function () {
    return view('welcome');
})->name('home');

Auth::routes();

Я не знаю, почему после успешного входа в систему он собирается / маршрут, я хочуотправить его на другой маршрут, который после входа в систему я вручную введите маршрут, который я успешно просмотрел этот маршрут, если я вошел в систему, он не будет отображаться, но как я могу управлять после входа в маршрут

1 Ответ

0 голосов
/ 05 октября 2018

Вы делаете это неправильно.Вы не должны помещать такой код в конструктор контроллера, потому что он, вероятно, не будет работать.

Вместо этого в вашем контроллере вы должны определить пользовательский метод redirectTo:

protected function redirectTo()
{
   if(Auth::check() && Auth::user()->role->id == 1) {
       return route('admin.dashboard');
   }

   return $this->redirectTo=route('user.dashboard'); 
}

Это должно работать, потому чтов признаке Illuminate/Foundation/Auth/RedirectsUsers.php указан метод:

public function redirectPath()
{
    if (method_exists($this, 'redirectTo')) {
        return $this->redirectTo();
    }

    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}

, который используется позже в LoginController по умолчанию при успешной регистрации пользователя.

...