Редирект после регистрации или авторизации на сайте
создаем собственный метод для редиректа после регистрации или авторизации на сайте в Laravel
В системе авторизации Laravel мы кое-что можем адаптировать под свои нужды, в том числе и переменную $redirectTo, ответственную за перенаправление пользователя на определенную страницу сайта после регистрации или авторизации. И, продолжая разговор о переменной $redirectTo, здесь действительно есть чем заняться.
По умолчанию, эта переменная есть в файле app/Http/Controllers/Auth/RegisterController.php:
class RegisterController extends Controller
{
protected $redirectTo = '/home';
// ... More functions here
}
Это означает, что после регистрации пользователь отправляется по адресу /home. Мы можем перенаправить пользователя, просто изменив значение этой переменной.
Но что делать, если нам нужно не только изменить ссылку для редиректа.
Возможно, мы хотим, чтобы адрес при перенаправлении зависел от роли, назначенной пользователю или от каких-то других условий?
В этом случае мы можем создать свой собственный метод с тем же названием, что и переменная redirectTo:
class RegisterController extends Controller
{
protected $redirectTo = '/home';
protected function redirectTo()
{
if (auth()->user()->role_id == 1) {
return '/admin';
}
return '/home';
}
}
Таким образом, в методе redirectTo мы можем установить необходимую логику, которая переопределит значение переменной $redirectTo.
Такой же подход можно использовать и в отношении класса LoginController.
Еще больше информации по данному вопросу можно получить на официальном сайте Laravel
Спасибо за внимание.